c - 指向另一个数组的数组

标签 c arrays

我是 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/

相关文章:

c - 在 Opencv 中滚动图像时出错

c - 如何在 OpenCV 中屏蔽浮点图像?

c - 位字段如何与 C 中的位填充相互作用

c++ - 在 OpenCV C/C++ 中只过滤掉一个轮廓

java - 将字符数组转换为字符数组列表

java - 不带循环的整数数组交集递归

javascript - 返回一个数组的函数,该数组在特定索引处具有特定顺序的数字

javascript - 当两个不同对象的两个值匹配时,向对象添加新的键/对

c++ - 使用 C/C++ 访问 OS X 钥匙串(keychain)

javascript - 修改数组对象的元素属性时,Redux 存储不更新