所以我有10个二维chars数组,我需要创建一个指向这些二维数组的指针数组,然后我需要打印这些二维数组。 到目前为止,我已经完成了这个:(我已经声明了数组)
char(*s1)[9][15] = &p1;
char(*s2)[9][15] = &p2;
char(*s3)[9][15] = &p3;
char(*s4)[9][15] = &p4;
char(*s5)[9][15] = &p5;
char(*s6)[9][15] = &p6;
char(*s7)[9][15] = &p7;
char(*s8)[9][15] = &p8;
char(*s9)[9][15] = &p9;
char(*s10)[9][15] = &p10;
char *pointers[10] = {s1,s2,s3,s4,s5,s6,s7,s8,s9,s10};
for(int i = 0; i < 9; i++){
for(int j = 0; j < 15; j++){
cout << [0][i][j]; // this is just for the first two-dimensional array
}
}
所以这不会打印出应该的数组。我能做什么?请帮忙。
答案 0 :(得分:-1)
pointers
的类型。试试这个:
#include <iostream>
using std::cout;
#define array(x) char x[9][15] = {};for(int i=0;i<9;i++)for(int j=0;j<9;j++)x[i][j]='!'+i+j;
int main(void) {
array(p1)
array(p2)
array(p3)
array(p4)
array(p5)
array(p6)
array(p7)
array(p8)
array(p9)
array(p10)
char(*s1)[9][15] = &p1;
char(*s2)[9][15] = &p2;
char(*s3)[9][15] = &p3;
char(*s4)[9][15] = &p4;
char(*s5)[9][15] = &p5;
char(*s6)[9][15] = &p6;
char(*s7)[9][15] = &p7;
char(*s8)[9][15] = &p8;
char(*s9)[9][15] = &p9;
char(*s10)[9][15] = &p10;
char (*pointers[10])[9][15] = {s1,s2,s3,s4,s5,s6,s7,s8,s9,s10};
for(int i = 0; i < 9; i++){
for(int j = 0; j < 15; j++){
cout << (*pointers[0])[i][j]; // this is just for the first two-dimensional array
}
}
return 0;
}