【发布时间】:2012-06-02 15:48:38
【问题描述】:
我必须使用三重指针为 3D 数组分配内存。
#include <stdio.h>
int main()
{
int m=10,n=20,p=30;
char ***z;
z = (char***) malloc(sizeof(char**)*m*n*p);
return 0;
}
这是正确的做法吗?(我认为我的做法不正确。)
【问题讨论】:
-
很久没做C了,但表面上看是对的。你觉得哪里不对?
-
在C语言中,不要强制转换malloc的返回值,特别是如果你不包含stdlib.h,因为如果没有原型,函数默认返回值int。
-
@AndersK 你能解释一下吗
-
请参阅stackoverflow.com/questions/605845/… 以了解不转换
malloc()的返回值。
标签: c pointers memory-management multidimensional-array