malloc
和 free
是 C 语言中用于动态内存分配和释放的函数。如果你发现使用 free
释放通过 malloc
分配的内存不起作用,可能是以下几个原因:
malloc
、calloc
或 realloc
分配的内存。free
释放同一内存块会导致未定义行为。malloc
分配的内存。malloc
分配的内存。malloc
分配的内存。NULL
。NULL
。#include <stdio.h>
#include <stdlib.h>
int main() {
void* ptr = malloc(100);
if (ptr == NULL) {
fprintf(stderr, "Memory allocation failed\n");
return 1;
}
// 使用分配的内存
// ...
free(ptr);
ptr = NULL; // 防止悬空指针
return 0;
}
如果你仍然遇到问题,建议使用内存调试工具(如 Valgrind)来检查内存泄漏和非法内存访问。
领取专属 10元无门槛券
手把手带您无忧上云