已分配但未初始化

时间:2013-05-13 19:04:59

标签: c++ allocation

我遇到了已分配但未初始化的问题。

这是代码的一部分:

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]”,已分配但未初始化。

我相信我对2-d数组分配和初始化感到困惑。我认为tmp是const char *数组,我只想将vertor转换为const char **;

然后在代码中,使用new和删除是否正确?

我知道如果2d数组是int * ,那么如果我想为它赋值,我需要新的int [num],然后执行for循环到new int [] ;但我的情况怎么样呢?

有人可以帮我解决这段代码吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下不要使用const,因为你在初始化后分配数据。