我正在从字符串向量创建一个 c 字符串数组。我希望结果数组跳过向量的第一个元素。我为此使用的功能如下:
char** vectortoarray(vector<string> &thestrings)
{
//create a dynamic array of c strings
char** temp = new char*[thestrings.size()-2];
for(int i = 1; i < thestrings.size(); i++)
temp[i-1] = (char*)thestrings[i].c_str();
return temp;
}
我知道这段代码有效,因为我在一个较小的程序中测试它没有错误。但是,当在稍微大一点的程序中运行时,我得到了错误terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
。
我如何防止这种情况发生?