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