c - 获取指向二维数组的指针

标签 c pointers multidimensional-array

我需要获取一个指向二维数组的指针。如果有帮助,这些大小在编译时是已知的。我需要根据变量的传入值对某个数组执行操作。

//Global arrays
// int c[6000][1000];
// int a[6000][1000];

void fun(int x){

    //Setup a pointer here
    //Possible solution: int (*pointer)[6000][1000];
    int **pointer;
    if (x == 0){
         pointer = c;
    }
    else{
         pointer = a;
    }
    //Modify pointer here and have changes reflect back to the array it was based off of
    pointer[0][17] = 42;
}

我已经查看了近十二篇关于如何执行此操作的不同堆栈溢出文章,但我找不到一种方法来获取指向二维数组的简单指针。

最佳答案

//Global arrays
int c[6000][1000];
int a[6000][1000];

void fun(int x) {
 int  (* ptr)[1000];
  if (x == 0) {
    ptr = c;
   } else {
    ptr = a;
   }
   ptr[0][17] = 42;

}

关于c - 获取指向二维数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47045204/

相关文章:

c++ - 指针初始化覆盖值

java - 等同于在 Java 中递增 C/C++ 指针?

c - 在结构中存储多维数组

java - 如何使用排列字符串迭代二维数组?

非均匀多维数组上的 C++ 迭代

c - 在c中使用套接字重新连接

c - malloc 没有相应的 free 是否总是会产生内存泄漏?

c - echo $PATH in system() 给我一个错误的输出

c - C语言从内存上传FTP文件

c++ - 如何处理警告:cast to int* from smaller integer type int