编译可通过,但在执行时出现段错误,通过gdb调试发现是如下原因
vector容器未初始化大小则直接通过下标访问赋值。
错误的部分代码
vector<vector<WORK>> Worksort(vector<WORK> work)
{
vector<vector<WORK>> workback;
//
//
{
workback[k].push_back(temp2[sortbank[k][m]][z]);
}
此处的workback[k],不能直接引用,因为事先未给workback分配大小,从而导致了段错误。
下面是修改后,段错误消失。
vector<vector<WORK>> workback;
workback.resize(sortbank.size());