对我来说,它看起来像它应该是如此简单,但我只是觉得我失去了一些东西。声明在GNU C字符串数组++
我有我的头文件中的私有变量_stoplist
当我在头文件中的代码看起来就像这样宣布它。
private:
std::string _stoplist[];
但是,当后来在我的功能我决定访问这个,它出现segfaults上的任何东西。
_stoplist[_length];
//cout << _length << prints 104 (its a valid int and everything)
_stoplist[0] = "b";
在具有segfault的std :: string.assign()代码中崩溃。我有一种直觉,我错过了一些明显的东西,但我还没有发现什么。
在此先感谢!
编辑:好,感谢所有帮助。对于任何可能阅读此内容的人,我建议使用下面的答案之一,因为这是做到这一点的明智之举。在我的情况下,因为我需要动态分配它没有使用矢量我只是使用下面的代码。
private:
std::string *_stoplist;
,然后在我的cpp文件
_stoplist = new string[_length];
是啊,事实证明,它确实是这样简单,我只是用看的那部分。
我只是想指出,这样的变长数组是不合法的C++,他们是一个GCC扩展。 – bames53