C++;指向2D动态数组的指针? 我是一个C++新手,我正在做一个项目,我有点被卡住了。我需要创建一个动态的2D不规则数组,然后有一个指向它的指针。以下是我所拥有的: int ** x = new int*[3]; int *** y = ???;

C++;指向2D动态数组的指针? 我是一个C++新手,我正在做一个项目,我有点被卡住了。我需要创建一个动态的2D不规则数组,然后有一个指向它的指针。以下是我所拥有的: int ** x = new int*[3]; int *** y = ???;,c++,arrays,dynamic,multidimensional-array,C++,Arrays,Dynamic,Multidimensional Array,现在,在我这样做之后: x[n] = new int[length]; x[++n] = new int[length2]; //etc etc 我可以通过以下语句访问数组中的值: int num = x[i][j]; 我想要的是能够通过y获得相同的数组值,如: int num2 = *y[i][j]; 所以,在这种情况下,num2和num应该具有相同的值,我如何为y分配内存并分配它呢 谢谢 指向x的指针应该是: int *** y = &x; 不必为Y. ./P>< P>分配空

现在,在我这样做之后:

x[n] = new int[length];
x[++n] = new int[length2];
//etc etc
我可以通过以下语句访问数组中的值:

int num = x[i][j];
我想要的是能够通过y获得相同的数组值,如:

int num2 = *y[i][j];
所以,在这种情况下,num2和num应该具有相同的值,我如何为y分配内存并分配它呢


谢谢

指向x的指针应该是:

int *** y = &x;

不必为Y. ./P>< P>分配空间.这里是在C++中创建2D数组的一个例子.

#include <iostream>

int main() {
  // dimensions
  int N = 3;
  int M = 3;

  // dynamic allocation
  int** ary = new int*[N];
  for(int i = 0; i < N; ++i)
      ary[i] = new int[M];

  // fill
  for(int i = 0; i < N; ++i)
    for(int j = 0; j < M; ++j)
      ary[i][j] = i;

  // print
  for(int i = 0; i < N; ++i)
    for(int j = 0; j < M; ++j)
      std::cout << ary[i][j] << "\n";

  // free
  for(int i = 0; i < N; ++i)
    delete(ary[i]);
  delete [] ary;

  return 0;
}

// OUTPUT
0
0
0
1
1
1
2
2
2
#包括
int main(){
//尺寸
int N=3;
int M=3;
//动态分配
整数**元=新整数*[N];
对于(int i=0;istd::cout作为“C++新手”,帮你自己一个忙,别忘了你甚至听说过
new
,尤其是
new
的数组形式。对于一个粗糙的2D数组,使用
std::vector
。这个项目是针对一个类的,设计规范表明我们不能使用向量。然后解雇你的老师,找一个知道他在做什么的人。抱歉直言不讳,但这对他来说是完全不可原谅的行为。这难道不意味着y指向x吗?我想让y指向一个指向x所指向的东西的指针
  int ***p = &ary;

  // print
  for(int i = 0; i < N; ++i)
    for(int j = 0; j < M; ++j)
      std::cout << (*p)[i][j] << "\n";