我遇到了已分配但尚未初始化的問題。已分配但未初始化
這裏是代碼的一部分:
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