c语言概念清晰的来说一下 调用malloc函数和直接声明一个数组从开辟空间的效果上来说有什么区别么?

我觉得除了一个可以释放(动态),一个不可以(静态)之外没什么区别?是麽?... 我觉得除了一个可以释放(动态),一个不可以(静态)之外没什么区别?
是麽?
展开
 我来答
沧海雄风2009
2012-02-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2853万
展开全部
一个是 你去摘苹果 摘了 100个 你现在malloc了一个能装100个苹果的框

摘了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
百度网友a85c26040
2012-02-24 · 超过25用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:63万
展开全部
malloc动态申请内存,申请的小了,可以追加
数组必须申请规定长度的大小。所以申请的大一些,以免不够了没法追加,所以会浪费内存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式