如下用malloc初始化一个空间,长度是6,然后再计算这个空间的长度为什么结果是4? = =

2025-02-28 03:37:09
推荐回答(1个)
回答1:

一般的做法是把malloc和free包装以后使用,再加入适当的调试代码。可以参考:编写无错的C程序的秘诀的电子版。比如:free(p)包装一个函数:
void Free(void *p) {
if (p != NULL) {
free(p);
p = NULL;
}
}
至于malloc,一般的做法是分配size个字节的内存时,多分配一个调试用的结构体,然后把这些结构体做成链表,可以通过查看这个链表找到野指针。