得到了这个
char array1[10][10];
是否可以获取Array1的地址?我可以在哪种类型中库存?已经尝试了以下内容:
char *hold[10][10];
hold = &array1;
但行不通,想法?
您现在拥有的是char *
的2D数组。您需要这种类型的括号。
char (*hold)[10][10];
这是一个指向char[10][10]
类型2D数组的指针,您可以将&array
分配给。
通常您需要获取第一个元素的地址,而不是指向2D数组的指针。第一个元素是char [10]
(一个1D数组),因此您需要
char (*hold)[10] = array1;
注意array1
转换为指向分配的第一个元素。这是不是递归应用!
这样,您可以像原始数组一样放置指针:
hold[4][5]
对于char (*hold)[10][10]
方法,语法更为复杂,并且不是真正的性。访问数组的元素需要首先取消指针:
(*hold)[4][5]