vector<char*> *v =new vector<char*>[size];
for(i=0;i<size;i++)
{
char *buf=new char[1024];
------
------
ind=****;
v[ind].push_back(buf); // i am sure ind is not our of bounds.
}
我使用new运算符声明了一个向量数组,并将其填入循环中。但它遇到了一个SEGV。我无法弄清楚它是如何发生的。我的GDB回溯为我提供了最后一个堆栈函数“..... include / c ++ / 4.4.5 / ext / new_allocator.h:105”。 代码段如下所述。
答案 0 :(得分:2)
我有一种你真正想要的感觉
auto vv = vector<vector<string>>(size/*, vector<string>(1024)*/);
然后使用
for(auto v& : vv)
{
v.push_back("ola");
}
等