微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带字符串数组的分段错误c ++

| 运行程序时,出现“分段错误错误。我相信它来自我如何使用在类定义中私下声明的数组“ 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];
,您将需要学习如何使用调试器。确切的过程取决于您所使用的系统。但是,如果您在调试器中运行代码,则调试器将在检测到问题的确切行停止。可以想象,这对于调试非常有帮助。 请注意,检测到该问题的行与该问题开始的行可能会完全不同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。