Überprüfen Sie, ob ein Zeiger auf den zugewiesenen Speicher auf dem Heap verweist.

Ich möchte wissen, ob ein Zeiger auf einen mit malloc / new zugewiesenen Speicherbereich verweist. Mir ist klar, dass die Antwort für eine beliebige Adresse "Nein, können Sie nicht" lautet, aber ich denke, es ist möglich, malloc / free zu überschreiben und die zugewiesenen Speicherbereiche zu verfolgen.

Kennen Sie eine Speicherverwaltungsbibliothek, die dieses spezielle Tool bereitstellt?
Weißt du was für Seriencode?

Valgrind ist großartig, aber es ist zu viel Instrumentierung (langsam) und wie Will sagte, wollen wir Valgrind nicht so verwenden (dafür ist der weiche Crash gut genug).
Schmutzfänge ist eine sehr gute Lösung, aber für GCC bestimmt, und leider gibt ein Scheck nicht einfach einen Booleschen Wert zurück (siehe meine Antwort unten).
Beachten Sie, dass das Überprüfen, ob Speicherschreibungen zulässig sind, ein @ isSicherheitsproble. Leistungsorientierung ist also angesagt.

Antworten auf die Frage(20)

Ihre Antwort auf die Frage