繁体   English   中英

带字符串数组的分段错误C ++

[英]Segmentation fault c++ with strings array

运行程序时,出现“分段错误”错误。 我相信它来自我如何使用在类定义中私下声明的数组“ 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();
  }

该行:

words = new string(words[numwords]);

实际上应该是:

words = new string[numwords];

您将需要学习如何使用调试器。 确切的过程取决于您使用的系统。 但是,如果您在调试器中运行代码,则调试器将检测到问题的确切行停止。 可以想象,这对于调试非常有帮助。

请注意, 检测到该问题的行与该问题开始的行可能会完全不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM