Ich versuche mein erstes echtes Programm mit dynamischen Arrays zu schreiben, aber ich bin auf ein Problem gestoßen, das ich nicht verstehen kann. Im Grunde versuche ich ein dynamisches Array zu nehmen, es in ein temporäres Array zu kopieren, dem ursprünglichen Array eine weitere Adresse hinzuzufügen und dann alles wieder in das ursprüngliche Array zu kopieren. Jetzt hat das ursprüngliche Array eine Adresse mehr als zuvor. Dies funktionierte perfekt, wenn man mit Ints versuchte, aber Saiten stürzten mein Programm ab. Hier ist ein Beispiel für den Code mit Ich bin zu kämpfen:Zuweisen einer neuen Zeichenfolge stürzt ab?
void main()
{
int x = 3;
std::string *q;
q = new std::string[x];
q[0] = "1";
q[1] = "2";
q[2] = "3";
x++;
std::string *temp = q;
q = new std::string[x];
q = temp;
q[x-1] = "4";
for (int i = 0; i < 5; i++)
std::cout << q[i] << std::endl;
}
Wenn ich q und Temperatur in Zeiger machen statt String in int dann das Programm läuft gut. Jede Hilfe würde sehr geschätzt werden, ich bin seit einer oder zwei Stunden darauf festgefahren.
vergleichen 'q = neue std :: string [x];' mit 'q = temp;' ... das '=' symbol bedeutet in beiden Fällen das Gleiche –