如何在 C 中使用指向数组的指针和动态内存分配来创建二维数组,而不使用 typedef 并且在指向数组的指针声明时不使用 malloc?我们如何对指向数组的指针进行类型转换? 一般来说,我们如何创建 a[r][c] ,从 int (*a)[c] 开始,然后为“r”行分配内存?
例如。如果我们需要创建 a[3][4]
,我们是这样做的吗?
int (*a)[4];
a= (int (*) [4]) malloc (3*sizeof (int *));
最佳答案
For ex. If we need to create a[3][4] , Is this how we do ?
int (*a)[4];
a= (int (*) [4]) malloc (3*sizeof (int *));
int (*a)[4] = malloc ( 3 * sizeof ( int [4] ) );
或者
int (*a)[4] = malloc ( 3 * sizeof ( *a ) );
或者
int (*a)[4] = malloc ( 12 * sizeof ( int ) );
第一种初始化形式的信息量更大。
关于c - 指向数组的指针和动态内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29624765/