Hello,
Dieser Code ist sehr konstruiert und theoretisch.
Die for-Schleife habe ich nur geschrieben weil die Variable c danach nicht mehr verfügbar ist.
mMn läuft die so auch gar nicht, da Du die Laufbedingung auf 'false' gesetzt hast.
Wird zwar eh auf 0 gesetzt, also die Eingabe ist weg, aber so wird es noch deutlicher.
Ich weis danach eben nicht was p1 und was p2 ist. (ob Array oder nicht)
Nur den Fall für c==1 betrachtet,
Ich vermute, dass Du folgendes erreichen wolltest:
p1 sollte danach eine Kopie des Pointers _p1 sein
p2 sollte danach eine Kopie des Pointers _p2 sein
ABER, versuche mal:
int* a;
char* z;
cout << "a*: " << a << endl;
cout << "z*: " << z << endl;
und mach Dir Deinen Reim darauf.
C++ ist eben doch sehr geheimnisvoll chaotisch.
Ich habe versucht, das alles nachzuvollziehen. Brauche ja schließlich auch noch etwas Übung :-)
Was sollte denn eigentlich passieren? Vielleicht beschreibst Du mal, was Du vor hattest.
char* _p1 = new char;
char* _p2 = new char[1024];
*_p2 = 'H';
*(_p2+1) = 'a';
*(_p2+2) = 'l';
*(_p2+3) = 'l';
*(_p2+4) = 'o';
*(_p2+1000) = '\0';
cout << "_p2: " << _p2 << endl;
cout << "_p2: " << *_p2 << endl;
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg