C语言指针什么情况下需要用形如(int*)malloc(n*sizeof(int))这样的语句申请内存空间?不申请内存可以吗

 我来答
山水阿锐
2015-04-07 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好,malloc()函数的作用是分配制定字节数的空间。
sizeof()为单目运算 求出对应类型所占用的字节数。
(类型名)为单目运算 为强制类型转换。
要注意的是 malloce函数申请得到的空间是无类型的空间 必须强制转换成对应指针可以指向的空间的类型 。
这里定义的是int *p 所以p指针只能指向int型空间。
sizeof(int) 求得int类型所占的字节数。
malloc(sizeof(int)) 申请一个跟int所占的空间大小一样的空间。
(int*)malloc(sizeof(int)) 将申请得到的空间地址转换成了int类型空间地址。
最后就可以赋值给指向int型空间的p指针了。
定义一个指针,为该指针分配一个一块n个int空间的内存,当然malloc还可能会返回null就是了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式