当我运行程序时,我收到了Segmentation Fault错误。我相信它来自于我如何使用在类定义中私有声明的数组“string * words”。我在.cpp文件中使用它 有谁知道我需要改变什么? 继承了我认为问题所在的功能:
Dictionary::Dictionary(string filename){
ifstream inF;
inF.open(filename.c_str());
if (inF.fail()){
cerr << "Error opening file" <<endl;
exit(1);
}
inF >> numwords;
numwords = 3000;
words = new string(words[numwords]);
for(int i=0; i <= numwords - 1; i++){
inF >> words[i];
}
inF.close();
}
答案 0 :(得分:9)
该行:
words = new string(words[numwords]);
实际应该是:
words = new string[numwords];
答案 1 :(得分:4)
您将需要学习如何使用调试器。确切的过程取决于您使用的系统。但是,如果您在调试器中运行代码,调试器将在检测到问题的确切行上停止。可以想象,这对调试很有帮助。
请注意,检测到问题的行以及问题启动的行可能会有很大差异。