C语言p1=(int *)malloc(sizeof(int))作用与意思是什么

谢谢了... 谢谢了 展开
 我来答
kaixingui2012
2015-09-17 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6209万
展开全部
p1=(int *)malloc(sizeof(int));语句是给指针变量p分配一个整形数据空间。
C语言中定义指针变量后,必须给指针变量进行相应的地址分配,才可以使用指针变量,否则会出现程序异常。常见的指针地址分配方法为:
int *p1; //定义指针变量p1,未初始化
(1)
int x =5;
p1=&x ; //给指针变量分配一个已存在的相应类型的变量的地址,即p1指向x所在的位置。
(2)
p1=(int *)malloc(sizeof(int)); //让系统为p1选择一个内存空间
其中,malloc()是系统动态分配内存的函数,其函数原型为:
void * malloc( int size );
void *表示函数返回值为任意类型,即malloc可为任意类型数据分配内存空间
参数size是指分配的内存单元字节数

接下来就可以通过指针变量p1进行数据操作了,如:*p1 = 10 ;
注意,当p1未分配内存地址时(称为野指针),*p1操作会导致程序崩溃。
望峻枝夏青
2019-03-02 · TA获得超过3782个赞
知道大有可为答主
回答量:3174
采纳率:29%
帮助的人:195万
展开全部
malloc是向系统申请内存空间的函数,返回值是void
*
很明显,p1一定是定义为int
*p1;的,所以强制malloc返回的指针更改类型为int
*
malloc的参数说明要申请多少字节数据,这里要申请一个连续5个整型的数据区,所以用5乘以每个int占用的字节数,即5*sizeof(int)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a_jerboa
推荐于2018-02-28
知道答主
回答量:19
采纳率:0%
帮助的人:12.1万
展开全部
申请一个大小为 一个int所占值大小 的内存空间,并返回地址,且把地址强制转换成 int* 类型的,然后再把转换过的地址值赋给指针变量p1.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tclxc天天
2009-12-02 · TA获得超过180个赞
知道答主
回答量:115
采纳率:0%
帮助的人:0
展开全部
sizeof(int)是算整形int的长度, 用malloc()函数分配一个int型变量长度的存储空间,
(int *)是转换成int型的指针类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
394866351
2009-12-02 · TA获得超过124个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:204万
展开全部
分一块内存给p1,sizeof(int)即分配的大小为INT的大小,为4
free(p1);//释放p1的内存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式