Как проверить, сделан ли к текущему моменту 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);
        ...












