【发布时间】:2021-07-04 08:24:22
【问题描述】:
我有一个函数,它接受一个数字字符串并将每个元素分配到一个单维向量中:
void insert(vector<int> &matrix, string s)
{
for (int i=0; i<s.length(); i++)
matrix.push_back(s[i]-'0');
}
然后,在我的 main 函数中,我声明了一个 2D 向量:
vector<vector<int>> matrix;
现在例如我尝试执行函数:
insert(matrix[0],"12345");
它只会给我错误分段错误,我不知道为什么。
我该如何解决这个问题?
【问题讨论】:
-
因为你的
matrix.size()是0,所以访问matrix[0]是未定义的行为。
标签: c++ vector segmentation-fault