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

谢谢了

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操作会导致程序崩溃。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-02
malloc是向系统申请内存空间的函数,返回值是void
*
很明显,p1一定是定义为int
*p1;的,所以强制malloc返回的指针更改类型为int
*
malloc的参数说明要申请多少字节数据,这里要申请一个连续5个整型的数据区,所以用5乘以每个int占用的字节数,即5*sizeof(int)
第2个回答  推荐于2018-02-28
申请一个大小为 一个int所占值大小 的内存空间,并返回地址,且把地址强制转换成 int* 类型的,然后再把转换过的地址值赋给指针变量p1.本回答被提问者和网友采纳
第3个回答  2009-12-02
sizeof(int)是算整形int的长度, 用malloc()函数分配一个int型变量长度的存储空间,
(int *)是转换成int型的指针类型
第4个回答  2009-12-02
分一块内存给p1,sizeof(int)即分配的大小为INT的大小,为4
free(p1);//释放p1的内存

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网