Anledningen är att cout behöver lite initialeringskod innan den kan användas, kod som ligger före main(). I denna kod anropas nog new och då blir cout-anropet i new() ett anrop till ett icke initerat objekt.
Heh.. :birp
Wooo.
Kul test.. men om du slängt in din operatoröverlagring som metoder i en egen klass och initierat den hade du sluppit denna flagga (flaggor är f.ö typiskt sånt som tillhör strukturerade språk som C och man bör undvika sånt i OOP - språk). Kanske nåt att tänka på vid vidare experimenterande :)
Wooo.
Kul test.. men om du slängt in din operatoröverlagring som metoder i en egen klass och initierat den hade du sluppit denna flagga (flaggor är f.ö typiskt sånt som tillhör strukturerade språk som C och man bör undvika sånt i OOP - språk). Kanske nåt att tänka på vid vidare experimenterande :)
Men då fungerar ju den operatorn bara med den klassen. Jag ville spåra alla allokeringar som skedde i mitt program, inte bara för en specifik klass.
int* p = new int; //global operator används
(Lämpligtvis läggs den globala variablen i sitt eget namespace eller något för att undvika konflikter)
Har du funderat på att använda en färdig debug heap? Har du MSVC++ är C-runtimens debug heap bra.
Tja, jag gjorde det mest för att lära mig lite. Jag hade väl kunnat ladda hem nån färdig garbage-collector med smarta pekare och hela faderullan annars.
3362 ms totalt · 3 externa anrop · v20260731065814-full.55e59744