我正在制作一个日志实用程序,用于跟踪我制作的库中的分配和解除分配。
我的程序没有崩溃,但我仍然对我的方法持怀疑态度。
void my_free(struct my_type *heap)
{
if (!heap)
logger("Fatal error: %s", "Null pointer parameter");
// I leave this here on purpose for the application to crash
// in case heap == NULL
free(heap->buffer);
void *address = heap;
free(heap);
logger("Heap at %p successfully deallocated", address);
// since heap->buffer is always allocated/deallocated together with
// heap I only need to track down the heap address
}
- 这样做有什么问题吗?
- 我可以用数字存储地址吗?就像在无符号整数中一样?默认类型是什么?