komisches new
-
Hallo,
hab mal zu testzwecken sowas gemacht:
#include <iostream> using namespace std; int main() { int* ptr = new int(3); // Irgendwas ptr = new int(5); }Wenn ich jeweils die Adressen von
ptrvergleiche, kommt genau das selbe raus. das heißt, der erste und der zweiteintliegen an der selben stelle.
Was wiederum heißen würde, dass der erste int gelöscht wurde, als der zweite erstellt wurde.stimmt das, das das zweite
new int()das erste löscht?
-
Nein, das ist nicht so. Ist da vielleicht noch ein delete dazwischen?
-
Braunstein schrieb:
Nein, das ist nicht so. Ist da vielleicht noch ein delete dazwischen?
oh... ja natürlich

danke
-
Warum probierst du es nicht einfach?
daersc schrieb:
#include <iostream> using namespace std; int main() { int* ptr = new int(3); strcpy (ptr, "12"); int *tmp = ptr; // Irgendwas ptr = new int(5); strcpy (ptr, "3456"); std::cout << "1:" << tmp << "\t2:" << ptr << std::endl; delete tmp; delete ptr; }und, was kommt raus?

bb
-
ja ich habs ja probiert und dabei ein delete irgendwo versteckt, ohne darauf zu achten, dass das ja das ergebnis verfälscht