C语言高手进 int * p = (int *)malloc(sizeof(int));
int*p=(int*)malloc(sizeof(int));这条语句应该怎么理解啊对于动态分配我还不是太理解。从内存角度他是怎么分配的?...
int * p = (int *)malloc(sizeof(int)); 这条语句 应该怎么理解啊 对于动态分配我还不是太理解 。从内存角度他是怎么分配的?
展开
展开全部
malloc()函数的作用是分配制定字节数的空间
sizeof()为单目运算
求出对应类型所占用的字节数
(类型名)为单目运算
为强制类型转换
要注意的是
malloce函数申请得到的空间是无类型的空间
必须强制转换成对应指针可以指向的空间的类型
这里定义的是int
*p
所以p指针只能指向int型空间
sizeof(int)
求得int类型所占的字节数
malloc(sizeof(int))
申请一个跟int所占的空间大小一样的空间
(int*)malloc(sizeof(int))
将申请得到的空间地址转换成了int类型空间地址
最后就可以赋值给指向int型空间的p指针了
sizeof()为单目运算
求出对应类型所占用的字节数
(类型名)为单目运算
为强制类型转换
要注意的是
malloce函数申请得到的空间是无类型的空间
必须强制转换成对应指针可以指向的空间的类型
这里定义的是int
*p
所以p指针只能指向int型空间
sizeof(int)
求得int类型所占的字节数
malloc(sizeof(int))
申请一个跟int所占的空间大小一样的空间
(int*)malloc(sizeof(int))
将申请得到的空间地址转换成了int类型空间地址
最后就可以赋值给指向int型空间的p指针了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询