c语言概念清晰的来说一下 调用malloc函数和直接声明一个数组从开辟空间的效果上来说有什么区别么?
展开全部
一个是 你去摘苹果 摘了 100个 你现在malloc了一个能装100个苹果的框
摘了40个 就malloc一个能装40个苹果的框
一个是 你去的时候就带了个能装50个苹果的框 多了就装不下了
malloc 对与节约利用内存很重要
因为C语言主要用于嵌入式设备 内存都是很有限的
摘了40个 就malloc一个能装40个苹果的框
一个是 你去的时候就带了个能装50个苹果的框 多了就装不下了
malloc 对与节约利用内存很重要
因为C语言主要用于嵌入式设备 内存都是很有限的
追问
#include "stdio.h"
#include "conio.h"
main()
{
int*a;
a=(int*)malloc(4);
printf("%d\n",a);
*a=2;
printf("%d\n",*a);
free(a);
printf("%d",*a);
getch();
}
显示是2494
2
2
上面free是释放,为什么释放后指针变量a还是指向2这个值,不是应该被随机分配的么。
追答
3674080 *a的地址
2 *a所指向的值
-572662307 释放后的随机值
我用的vc6
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询