【发布时间】:2012-12-14 22:54:22
【问题描述】:
我正在输入
1
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
但由于某种原因,我将其作为我的输出
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHH
它应该在所有 H 中输出完全相同的东西,但不是输出更少的随机 I。那是什么?
#include <iostream>
using namespace std;
const int arrayElements = 40;
int main()
{
int lineInputs = 0;
cin >> lineInputs;
char mySexyArray [lineInputs-1][arrayElements-1];
int whatever =0;
for (int i=0;i<lineInputs;i++)
{
// cin >> whatever;
for (int j=0;j<arrayElements;j++)
{
cin >>mySexyArray[i][j];
}
}
for (int i=0;i<lineInputs;i++)
{
for (int j=0;j<arrayElements;j++)
{
cout << mySexyArray[i][j]<<"";
}
cout << endl;
}
return 0;
}
【问题讨论】:
-
当
lineInputs输入1时,lineInputs-1的值是多少? -
当 lineInputs 不是常量时,如何声明 char mySexyArray [lineInputs][arrayElements],应该报错
-
@StackHeapCollision:这是可以理解的,大多数编译器通过扩展支持可变长度数组,并不是每个人都使用
-pedantic编译代码,理想情况下应该这样做。 -
您是否考虑过使用
std::vector<std::string>而不是C 样式的数组?它会让你的代码更整洁,更不容易出现错误和缓冲区溢出。
标签: c++ arrays for-loop multidimensional-array