【发布时间】:2011-07-14 07:22:44
【问题描述】:
在下面的代码中,cout 正在输出正确的字符串数组。不幸的是,在代码的其他地方(仍然在同一个函数中,因此不是范围错误)cout << rs[i] 其中0<i<5 和i 是int,输出一个空格。帮助将不胜感激。
int N;
inp >> N;
string a[N]; //For matchee
string b[N]; //For matcher
string rs[N]; //For reflection
for(int i=0; i<N; i++) {
inp >> a[i];
}
for(int i=0; i<N; i++) {
inp >> b[i];
}
/*Build the reflection matrix*/
bool reflectCorrect = 1;
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
rs[i][j] = a[i][N-1-j];
cout << rs[i][j];
if(!(rs[i][j] == b[i][j])) {
reflectCorrect=0;
}
}
cout << "\n";
}
【问题讨论】:
-
您认为向我们展示正确的代码如何让我们猜测您未向我们展示的代码中有什么问题?
-
什么恶魔编译器甚至可以编译这个?你不应该在 C++ 中创建可变大小的数组。