图片是错误……不知道怎么回事求大神解答……
贴代码,不要贴图。建议贴在codepad.org上,这里给出链接。
#include
#include
using namespace std;
char ** create_table(int rows, int cols){
char **a;
a = new char *[rows+rows];
for(int i;i<rows+rows;i++){
a[i]=new char[cols+cols+1];
}
return a;
}
char ** create_table2(char **a, int rows, int cols){
for(int i = 0; i< rows+rows; i++){
for(int x = 0; x< cols+cols+1; x++){
a[i][x] = ' ';
}
}
for(int i = 1;i < rows+rows; i++){
for(int x = 0; x < cols+cols+1;x+=2){
a[i][x] = '|';
}
}
for(int i = 1;i < rows+rows; i+=2){
for(int x = 0; x < cols+cols+1;x++){
a[i][x] = '_';
}
}
return a;
}
int main(){
char **a;
int rows = 2;
int cols = 3;
a = create_table(2, 3);
a =create_table2(a, 2, 3);
for(int i = 0; i < rows+rows; i++){
for (int b = 0;b < cols+cols+1; i++){
cout << a[i][b];
}
}
return 0;
}
你的for循环中应该是 rows*clos,不是rows+cols,二维数组元素个数应该是相乘,你看看你是不是用错了(也许我没理解你的意图)
for(int i = 0; i < rows+rows; i++){
for (int b = 0;b < cols+cols+1; i++){
cout << a[i][b];
}
}
里面的for循环为为什么i++,这肯定死循环啦,导致了数组越界,从错误信息也可以看出是内存问题,也可以推测是越界了。
第一个循序,i没初始化