系列文章目录
文章目录
一、malloc申请的堆空间,free后还能访问吗?
答案是能。
测试步骤
#include <stdio.h>
#include <stdlib.h>
int main()
{
//申请堆空间
int* p = (int*)malloc(sizeof(int) * 10);
if (NULL == p)
{
printf("动态分配内存失败");
exit(-1);
}
//数组赋值
for (int i = 0; i < 10; i++)
{
p[i] = i;
}
//输出数组
for (int i = 0; i < 10; i++)
{
printf("%d ",p[i]);
}
//释放堆空间
free(p);
//再次输出数组,可以看到释放后依然可以访问,但值已经改变
for (int i = 0; i < 10; i++)
{
printf("%d\n", p[i]);
}
return 0;
}
总结
malloc注意事项。