SEGV使用后推

时间:2013-02-04 15:57:07

标签: c++

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”。 代码段如下所述。

1 个答案:

答案 0 :(得分:2)

我有一种你真正想要的感觉

auto vv = vector<vector<string>>(size/*, vector<string>(1024)*/);

然后使用

for(auto v& : vv)
{
    v.push_back("ola");
}