2016-05-17 2 views
-1

Ich mache derzeit einige dynamische Programmierung in C++ mit QT Creator. Gibt es eine Möglichkeit zu wissen, ob ein Stück Speicher, das ich dynamisch zugewiesen habe, am Ende einer Funktion geleert wird?Wie finden Sie heraus, wenn Speicher, der dynamisch zugewiesen wurde, geleert wird?

EDIT: Ich versuche zu finden, wenn der Speicher geleert wird, nachdem ich versucht habe zu löschen. Nicht überprüfen, ob ein Zeiger gültig ist.

+0

Können Sie ein Beispiel zeigen, was Sie tun können? – NathanOliver

+0

Geben Sie an, wie Sie Speicher reservieren. Wenn Sie malloc/calloc verwenden, prüfen Sie, ob der Rückgabewert null ist. –

+0

Sind Sie sicher, dass Sie [dynamische Programmierung] (https://en.wikipedia.org/wiki/Dynamic_programming) machen? – molbdnilo

Antwort

1

Nun, ich nehme an, Sie meinen "freigegeben" statt "geleert".

Wenn Sie eine Zeigervariable haben, setzen Sie am Anfang immer "nullptr" darauf. Wenn Sie den Zeiger loslassen, setzen Sie immer "nullptr" darauf.

Sie können immer überprüfen, ob der Zeiger gleich nullptr ist, also, es ist freigegeben. Es gibt keine einfache Möglichkeit, zu überprüfen, ob eine Adresse ein gültiges Objekt enthält.

Verwandte Themen