definierte ich einen Elternteil & ein Kind, wie folgend:Läuft der Speicher beim Aufruf von delete over parent pointer nach reinterpret_cast-in?
struct parent
{
int i;
~parent()
{
printf("~parent()\n");
}
};
struct child : public parent
{
char value[1024*1024];
~child()
{
printf("~child()\n");
}
};
int main()
{
for(int i=0; i < 1000; i++)
{
char* child_ptr = new char[sizeof(child)]();
parent* parent_ptr = reinterpret_cast<parent*>(child_ptr);
delete parent_ptr;
}
return 0;
}
oben Code ist legal? Ich meine, dass Speicherlecks? Ich habe mit Windows überprüft, die Speicher scheint nicht durchgesickert zu sein.
haben könnte, was geschrieben steht als Ausgabe beim Ausführen? – thorsan
Windows erhöhen Heap für Appl Bedürfnisse – nikniknik2016
@thorsan '~ parent()' natürlich –