我是 C 的新手。
创建一个数组,在每个索引处保存一个指向另一个动态大小数组的指针。
int main()
{
unsigned int i , j;
int* array1[2];
int a1[] = {1,2,3};
int a2[] = {2,3};
array1[0] = a1;
array1[1] = a2;
for (i=0 ; i < 2; i++) {
printf(" the value of array1[%d] = %d" , i , *array1[i]);
}
return 1;
}
the value of array1[0] = 1
the value of array1[1] = 2
只打印第一个元素。如何打印索引指向的整个数组。我错过了什么。
编辑:: 我现在明白了用法,但同样直接这样做,导致一个数组。
`unsigned int* c[3];
c[0] = {0, 5, 4, 7}; // This Line Err`
c[1] = {0, 5, 4, 3, 2, 6, 7};
c[2] = {0, 5, 4, 3, 2};
Causing an error : file try.c line xx function main: syntax error before `{'
为什么??
谢谢
最佳答案
如您所知,array1[0] 持有指向 a1 数组第一个元素的指针;要打印 a1
数组的所有元素,您应该对其进行迭代,如下所示:
for (int i = 0; i < 2; i++){
printf(" the value of a1[%d] = %d", i, *(array1[0] + i);
}
关于c - 指向另一个数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34605364/