char ** ptr = new char *[3];
ptr[0] = new char [5];
ptr[1] = new char [6];
ptr[2] = new char [7];
cout<<"Enter first array: ";
cin.getline(ptr[0], 5);
cin.getline(ptr[1], 6);
cin.getline(ptr[2], 7);
for (int i=0; i<3; i++){
cout<<ptr+i<<endl;
}
for (int i=0; i<3; i++){
delete[] ptr[i];
}
erklärt Wenn ich diesen Code ausführen, gibt es die folgende Ausgabe:Zeiger auf ein Array von CStrings dynamisch
Enter first array: name
0xf99c20
0xf99c28
0xf99c30
Ich wollte eigentlich den Eingang Benutzer ausgedruckt.
Könnte mir bitte jemand sagen, wie man das macht?
Err ... Lösung zu? – WhiZTiM
Sie wollten wahrscheinlich 'ptr [i]' drucken, was dasselbe wie '* (ptr + i)' ist. BTW, trotz Ihrer letzten 'delete [] ..' in einer Schleife, haben Sie immer noch ein Leck. Bevorzugen Sie 'std :: string' für Ihre String-Bedürfnisse und' std :: vector 'für Ihr Array benötigt –
WhiZTiM
1. Lösung zu was ??? 2. Sie müssen [] ptr am Ende Ihres Codes löschen. 3. Sie können auch 'char * ptr [3]' deklarieren (anstatt es zuzuweisen und zu löschen). 4. Es gibt viel einfachere, bessere und korrektere Methoden, um zu tun, was auch immer Sie versuchen zu tun. –