【发布时间】:2011-10-21 03:33:34
【问题描述】:
对我来说,它似乎应该如此简单,但我只是觉得我错过了一些东西。
我的头文件中有一个私有变量_stoplist 当我在头文件中声明它时,代码看起来就像这样。
private:
std::string _stoplist[];
但是当我稍后在我的函数中决定访问它时,它会出现任何问题。
_stoplist[_length];
//cout << _length << prints 104 (its a valid int and everything)
_stoplist[0] = "b";
std::string.assign() 代码因段错误而崩溃。我有一种直觉,我在这里遗漏了一些明显的东西,但我还没有完全找到。
提前致谢!
编辑:好的,感谢您的帮助。对于可能阅读本文的其他人,我建议使用以下答案之一,因为这是明智的做法。在我的情况下,因为我需要动态分配它而不使用向量,我只使用了以下代码。
private:
std::string *_stoplist;
然后在我的 cpp 文件中
_stoplist = new string[_length];
是的,事实证明这真的很简单,而我只是忽略了那部分。
【问题讨论】:
-
我只是想指出,像这样的可变长度数组不是合法的 C++,它们是 GCC 扩展。
标签: c++ arrays initialization segmentation-fault