三维数组定义

发布网友

我来回答

2个回答

热心网友

首先 这是个二维数组,以行和列为维度。a[3][3]只是代表了二维数组的行和列的长度这个是他数据存储的大致结构:
1 2 3
4 5 6
7 8 9
关于为什么要去掉里边的33才可以,这个可能是不同的编译器问题。如果你输入了具体的数据,想你的那个它会自动默认二维数组的大小。
补充回答:
我用Eclipse跑了一下,结果是5.0

热心网友

// 如果每一维的长度都可能不固定,可以像这样:
int d1 = 2, d2 = 3, d3 = 4;
int ***p = new int**[d1];
for(int i = 0; i < d1; i++) {
p[i] = new int*[d2];
for(int j = 0; j < d2; j++) {
p[i][j] = new int [d3];
for(int k = 0; k < d3; k++) {
p[i][j][k] = 123;
}
}
}
//释放:
for(int i = 0; i < d1; i++) {
for(int j = 0; j < d2; j++) {
delete[] p[i][j];
}
delete[] p[i];
}
delete[] p;

//如果只有第一维的长度不固定,这样:
int (*q)[3][4] = new int[d1][3][4];
//……
//释放:
for(int i = 0; i < d1; i++) {
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 4; k++) {
q[i][j][k] = 123;
}
}
}
delete[] q;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com