2015-04-15 111 views
1

我正在爲C類的介紹編寫一個程序,並在嘗試使用gcc進行編譯時不斷收到一些警告。錯誤:'outList'在此函數中未初始化使用[-Werror =未初始化]

這裏是我的代碼:

char **outList; 
*outList = strdup(cloudDevice); 
printf("this is device XML message: %s",*outList); 

任何想法,爲什麼?謝謝

+0

char ** outList; * outList = strdup(cloudDevice); printf(「這是設備XML消息:%s」,* outList); –

回答

3

它的抱怨,因爲你使用的是未初始化的指針,您引用outList他隨時隨地

爲什麼要使用char **而不是char * pointes的過嗎?

char *outList; 

outList = strdup(cloudDevice); 
printf("this is device XML message: %s", outList); 
+0

這是一個功能測試,所以我需要使用char ** –

0

我想通了!我不得不使用malloc

char **outList = malloc(sizeof (char **) * 256) ; 
outList = strdup(cloudDevice); 
printf("this is device XML message: %s",*outList); 
+1

不,你不是。 (1)在所有需要'sizeof(char *)'的邏輯中(分配一些'char *',返回一個指向它們的指針)。 (2)爲什麼'256'? (3)在你的第二行,你需要分配給'* outList'。你的編譯器應該對此進行尖叫。 – Quentin