【问题标题】:How do I change the value of a handle in C?如何更改 C 中句柄的值?
【发布时间】:2021-01-07 02:21:07
【问题描述】:

我有一个由 8 个数组组成的数组,其中 8 个数组中的每一个都包含 8 个整数(如果代码正确的话)。

我想知道如何让 array_of_arrays 中的每个指针指向一个单独的数组? (我尝试使用指向指针地址的指针,但无法使其工作)

int main() {
  
  int array_of_arrays[8][8];
  
  int array[8] = {1,2,3,4,5,6,7,8};
  
  *&*array_of_arrays[0] = array;


  return 0;
}

code

谢谢!

【问题讨论】:

  • 在真正的二维数组中你不能。你需要一个jagged array
  • 可以选择使用 64 (8*8) 简单数组。
  • each pointer in the array_of_arraysarray_of_arrays中没有pointer,只有8*8个int值。

标签: c pointers multidimensional-array dereference


【解决方案1】:

int array_of_arrays[8][8]; 没有声明指针数组。它声明了一个由 8 个int 组成的数组。 8 个int 的每个数组都在array_of_arrays 内部,不能安排在其他地方。您可以将数据复制到其中,但没有要设置的指针。

您可以使用int *array_of_arrays[8]; 声明一个包含8 个指向int 的指针的数组,然后array_of_arrays[0] = array; 将设置array_of_arrays[0] 指向array 的第一个元素。初始化每个指针后,您可以在表达式中使用array_of_arrays[i][j] 来访问数组的元素。

【讨论】:

  • 如果我不使用指针并将其保留为 int array_of_arrays[8][8],我将如何像您提到的那样将数据复制到它们中?
猜你喜欢
  • 1970-01-01
  • 2010-11-15
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多