Bitte lass es mich wissen, ob ich es machen kann oder nicht?
Ich schreibe eine Bibliothek, die dazu dienen könnte, Speicherzuweisung und -freigabe in C++ zu verfolgen. Kurz gesagt, ich versuche zu sehen, ob meine Anwendung keine Speicherlecks hat. Das ist bisher das, was ich gemacht habe.
Ich habe den new- und den delete-Operator überschrieben und jetzt. Immer wenn die Anwendung new verwendet, plane ich, die Adresse und die Anzahl der Bytes zu speichern, die in diesem Aufruf zugewiesen wurden. Ebenso, wenn das delete auf dieser Adresse aufgerufen wird, werde ich das aus der gespeicherten Liste entfernen. Bis jetzt ist das in Ordnung. Aber ich möchte den Dateinamen und die Zeilennummer speichern, von der aus "new" aufgerufen wird. Das kann ich nur im überschriebenen new tun. Gibt es eine Möglichkeit, die Zeilennummer in der überschriebenen Funktion zu bekommen?
1 int main()
2 {
3 // Nehmen wir an, A ist eine Struktur
4 A *a = new A();
5 return 0;
6 }
7 void* operator new( Größe )
8 {
9 //
10 // speichere die Zeilennummer und den Dateinamen in Zeile 4 ??? Kann ich das tun?
11 return (malloc(Größe));
12 }
------------------------