在C++中使用数组时出现段错误
Getting a segfault working with arrays in C++
我在一个入门C++课上,所以我对此完全陌生,但我似乎在运行时遇到以下代码的段错误(剥离到我认为问题所在):
int main(int argc, char *argv[])
{
string filename;
ifstream infile;
float average;
int const ARRAY_SIZE = 20;
int count = 0;
string responses[ARRAY_SIZE];
string response;
char grade;
welcome();
splash();
cout << showpoint << setprecision(1) << fixed;
cout << "nnnnnnnnnnn"
<< "ttEnter 8-Ball response file name: ";
cin >> filename;
infile.open(filename.c_str());
system("CLS");
cout << "score";
cout << "nnnn";
if (infile)
{
while (!infile.eof())
{
infile >> response;
if (1==1)
{
responses[count] = response;
count ++;
}
}
infile.close();
}
cout << "nnn";
system("PAUSE");
return 0;
}
那里有一些额外的行、变量等,只是因为它是从各种旧程序中拼凑出来的,我没有包含函数,因为这不是问题所在。基本上,每当我输入文件名时,都会出现段错误。它打印"score",所以在那之后,我尝试去掉 if 部分,但它仍然让我感到悲伤,所以看起来问题出在 while 语句中的代码上。我们没有详细讨论过段错误,所以我什至不知道从哪里开始搜索这个问题。
你硬编码了数组大小,它是否有可能超过这个限制?
因此,如果您的响应可以动态增长,请按如下方式声明一个向量
#include<vector>
std::vector<std::string> responses;
并按如下方式更正您的循环:
while (infile >> response;)
{
responses.emplace_back(response);
count ++;
}
infile.close();
相关文章:
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 如何摆脱C ++中的分段错误错误?
- Clang 8 带有静态 constexpr 和数组的链接器错误 - 错误是什么以及如何解决它?
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 如何解决分段错误错误C++
- 作为参数模板的模板类:MSVC 错误 - 错误 C2977:模板参数过多 (C++98)
- 安卓工作室 |CPP 文件错误错误: 位图库中对"AndroidBitmap_unlockPixels"的未定义引用
- 卷曲给出分段错误错误
- 无法访问 Arduino 结构字段。错误"退出状态 1。xxxx 不命名类型"
- 错误错误 C2872:"布尔值":kinect.h 的不明确符号
- C++打印模板容器错误(错误:"运算符<<"的不明确重载)理解?
- 结构的分割错误错误
- 为什么此代码返回分段错误错误?
- 错误错误:无法编译内置功能
- 分段错误错误C++
- C++ 1Z 错误:错误:演绎指南中声明中的显式限定
- 使用对数据类型的向量的哈希表中的分段错误错误
- 为什么此代码会导致分段错误错误
- JNA结构字段值错误
- C++段故障错误