Dynamisch zugewiesenen string-array, dann ändern Sie es Wert?

Ich versuche, einen string-array und verwenden Sie einen Zeiger, um es zu ändern. Ich bin mir nicht sicher, wie Sie Sie deklarieren, die Zeiger da die Saiten können in der Länge variieren, und ich denke, das ist, was den Fehler verursacht hat.

Mein code sieht ungefähr so aus:

#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;

Wirft er mir ein Schreiben Zugriffsverletzung, wenn ich versuche, um den Wert zu ändern. Von dem, was ich gelesen habe, es ist, weil Zeichenfolgen kompiliert werden als nur-Lesen, also meine Frage ist, wie würde ich/was würde ich tun, um es zu ändern? Einfach-zu-verstehen Erklärungen vorzuziehen wäre.

  • users = new string[seatNum]; erstellt ein array von strings indiziert 0 zu seatNum - 1, so users[seatNum] Zugriffe über die Grenzen des Arrays.
InformationsquelleAutor PeppeJ | 2013-11-26
Schreibe einen Kommentar