0
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”的最后一个堆栈函数。代码片段如下所述。

4

1 回答 1

2

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

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

然后使用它

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

等等

于 2013-02-04T16:02:09.957 回答