我正在尝试创建一个字符串数组,并使用一个指针对其进行修改。我不确定如何声明指针,因为字符串的长度可以变化,我认为这是导致错误的原因。
我的代码如下所示:
#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];
users[seatNum] = name;
第一个元素是[0]。最后是[seatNum-1]