LINUX.ORG.RU

На какую область памяти ссылается указатель (Си)

 ,


1

3

Как проверить, сделан ли к текущему моменту free(buf), или же область памяти на которую указывает buf доступна для read-write приложением?

int main() {
	const uint64_t N = 2;
	uint8_t *a = (uint8_t *)calloc(1,N);
	/* 32-битный адрес; --std=c99 -O0 -march=i386 */
	printf("a=0x%08X\n",(uint32_t)a);
	free(a);
	printf("a=0x%08X\n",(uint32_t)a);
        ...
★★★★★
Ответ на: комментарий от Nietzsche

#define FREE(p) do { free(p); (p) = NULL; } while(0)

Плюсую к этому. Потом просто проверяй на NULL.

Dudraug ★★★★★
()
Последнее исправление: Dudraug (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.