我遇到了一个已分配但未初始化的问题。
这是代码的一部分:
void test2(vector<string> names, int num) // just for test
{
const char **tmp = new const char *[num]; // issue happends here.
for(int i = 0; i < num; i ++)
tmp[i] = names[i].c_str(); // is it not inialization???
//call another function using tmp
delete []tmp;
}
在代码的第 3 行,我遇到了一个问题:分配:“tmp”=“new char const *[num]”,它已分配但未初始化。
我相信我对二维数组分配和初始化感到困惑。我认为tmp是const char *数组,我只想将vertor转换为const char **;
那么在代码中,这里使用new和delete对吗?
我知道如果二维数组是 int* ,那么如果我想给它赋值,我需要 new int [num],然后对 new int[] 做一个 for 循环;但是我的情况怎么样?
有人可以帮我处理这段代码吗?