C语言指针什么情况下需要用形如(int*)malloc(n*sizeof(int))这样的语句申请内存空间?不申请内存可以吗
1个回答
展开全部
您好,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就是了。
sizeof()为单目运算 求出对应类型所占用的字节数。
(类型名)为单目运算 为强制类型转换。
要注意的是 malloce函数申请得到的空间是无类型的空间 必须强制转换成对应指针可以指向的空间的类型 。
这里定义的是int *p 所以p指针只能指向int型空间。
sizeof(int) 求得int类型所占的字节数。
malloc(sizeof(int)) 申请一个跟int所占的空间大小一样的空间。
(int*)malloc(sizeof(int)) 将申请得到的空间地址转换成了int类型空间地址。
最后就可以赋值给指向int型空间的p指针了。
定义一个指针,为该指针分配一个一块n个int空间的内存,当然malloc还可能会返回null就是了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询