문자열 배열을 만들고 포인터를 사용하여 수정하려고합니다. 나는 문자열이 길이가 다를 수 있기 때문에 포인터를 선언하는 방법을 잘 모르겠습니다, 그리고 이것이 오류의 원인이라고 생각합니다.동적으로 할당 된 문자열 배열을 변경 한 다음 값을 변경 하시겠습니까?
내 코드는 다음과 같은 :
#includes <string>
#includes <iostream>
using namespace std;
string *users = NULL;
int seatNum = NULL;
cin >> seatNum;
users = new string[seatNum];
string name;
cin >> name;
users[seatNum] = name;
나는 그것의 값을 변경하려고 할 때 그것은 나에게 쓰기 액세스 위반이 발생합니다. 문자열을 읽기 전용으로 컴파일했기 때문에 읽은 것에서부터, 내 질문은 어떻게 내가/어떻게 변경해야합니까? 쉽게 이해할 수있는 설명이 바람직합니다.
'users = new string [seatNum];''0 '에서'seatNum - 1'까지 색인 된 문자열의 배열을 생성하므로'users [seatNum]'는 배열의 경계를 넘어서 접근합니다. –