Есть ли способ проверить, что выделение памяти указателя было освобождено?

Есть ли способ узнать, что назначение памяти указателю было освобождено? Я только начинаю изучать C и думаю, что наконец начинаю понимать тонкости управления памятью в C.

Так, например:

char* pointer;
pointer = malloc(1024);

/* do stuff */

free(pointer);

/* test memory allocation after this point */

Я знаю, что указатель по-прежнему будет хранить память адрес, пока я не установил pointer = NULL - но есть ли способ проверить, что указатель больше не ссылается на память, которую я могу использовать, без предварительной установки значения NULL?

Причина, по которой я хочу это сделать, заключается в том, что у меня есть куча модульных тестов для моей программы на C, и один из них гарантирует, что после вызова специальной функции нет потерянных указателей который выполняет очистку пары связанных списков. Посмотрев на отладчик, я вижу, что моя функция очистки работает, но мне нужен способ проверить указатели, чтобы я мог заключить их в утверждение модульного теста.

8
задан Ash 20 May 2011 в 01:06
поделиться