我遇到了已分配但尚未初始化的问题。已分配但未初始化
这里是代码的一部分:
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” =“新字符常量* [NUM]”,这是分配但未初始化。
我相信我对2-d数组的分配和初始化感到困惑。我认为tmp是const char *数组,我只是想将vertor转换为const char **;
然后在代码中,在这里使用新的和删除是否正确?我知道,如果二维数组是int * ,那么如果我想给它赋值,我需要新的int [num],然后做一个for循环到新的int [];但我的情况如何呢?
有人可以帮我用这段代码吗?
常数是恒定的。 – 2013-05-13 19:10:32
你有什么问题?编译器是否抱怨?如果是这样,请发布消息。代码没有做到你期望的那样做?展示你如何运用代码,描述你期望它做什么,以及它实际上在做什么。 – 2013-05-13 19:13:33
我怀疑问题中的代码与您遇到的代码不一样。 – 2013-05-13 19:17:40