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;i std::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";