我已经看到了下面的代码的结果有些差异:如何知道C函数是否可用?
#include <stdio.h>
#include <malloc.h>
#include <string.h>
int main(void)
{
char* ptr;
ptr = (char*)malloc(sizeof(char) * 12);
strcpy(ptr, "Hello World");
printf("%s\n", ptr);
printf("FREEING ?\n");
free(ptr);
printf("%s\n", ptr);
}
让我解释一下:
在第三呼叫根据不同的操作系统,我得到不同的结果给printf,在Windows gargabge caracters,没什么在Linux和Unix系统中打印“Hello World”。
有没有办法检查指针的状态以知道内存何时被释放?
我觉得这种打印机制不可能一直都是可信的。
Thnaks。
问候。
释放指针并不一定会改变它指向的实际内存。 – Gabe 2011-03-17 02:22:15