Есть ли способ узнать, что назначение памяти указателю было освобождено? Я только начинаю изучать C и думаю, что наконец начинаю понимать тонкости управления памятью в C.
Так, например:
char* pointer;
pointer = malloc(1024);
/* do stuff */
free(pointer);
/* test memory allocation after this point */
Я знаю, что указатель по-прежнему будет хранить память адрес, пока я не установил pointer = NULL
- но есть ли способ проверить, что указатель больше не ссылается на память, которую я могу использовать, без предварительной установки значения NULL?
Причина, по которой я хочу это сделать, заключается в том, что у меня есть куча модульных тестов для моей программы на C, и один из них гарантирует, что после вызова специальной функции нет потерянных указателей который выполняет очистку пары связанных списков. Посмотрев на отладчик, я вижу, что моя функция очистки работает, но мне нужен способ проверить указатели, чтобы я мог заключить их в утверждение модульного теста.