指向数组和动态内存分配的指针

时间:2015-04-14 10:16:46

标签: c pointers multidimensional-array

如何在C和动态内存分配中使用指向数组的指针创建二维数组,而不使用typedef并且在指向数组声明的指针时不使用malloc?我们如何对指向数组的指针进行类型转换? 一般来说,如何创建一个[r] [c],从int(* a)[c]开始,然后为“r”行分配内存?

对于前。如果我们需要创建a[3][4],我们会这样做吗?

int (*a)[4];

a= (int (*) [4]) malloc (3*sizeof (int *));

1 个答案:

答案 0 :(得分:2)

  

对于前。如果我们需要创建[3] [4],我们这样做了吗?

     

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 ) );

初始化的第一种形式提供了更多信息。

相关问题