【发布时间】:2021-12-13 00:24:24
【问题描述】:
我正在尝试学习 c++,并想编写一个简单的程序来探索向量和指针的使用。当我尝试运行一个使用此函数的简单程序时,会发生分段错误。当我改变时
std::vector<string> *data;
到
std::vector<string> data;
并将 '->push_back()' 更改为 '.push_back()' 它运行良好。
int simple_tokenizer(string s)
{
std::stringstream ss(s);
std::vector<string> *data;
string word;
//char delimiter = ',';
while(getline(ss,word, ',')) {
//cout << "charsplit" << word << endl;
data->push_back(word);
}
return 0;//data;
}
【问题讨论】:
-
在使用 '*data' 之前,您应该分配/创建一个向量。
-
感谢您的帮助!该实际向量应该替换 std::vector
吗? -
每次使用指针(
* )时都需要分配/创建(即 new <type>)。 -
我不确定你想做什么。我相信你会喜欢
std::vector<string> data;
标签: c++ pointers vector segmentation-fault