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指针了。
转载:
https://blog.csdn.net/qq_42160112/article/details/102711456
C++ 二维数组空间分配 int * p = (int *)malloc(sizeof(int));语句解说
最新推荐文章于 2022-11-03 21:09:56 发布