我正在爲C類的介紹編寫一個程序,並在嘗試使用gcc進行編譯時不斷收到一些警告。錯誤:'outList'在此函數中未初始化使用[-Werror =未初始化]
這裏是我的代碼:
char **outList;
*outList = strdup(cloudDevice);
printf("this is device XML message: %s",*outList);
任何想法,爲什麼?謝謝
我正在爲C類的介紹編寫一個程序,並在嘗試使用gcc進行編譯時不斷收到一些警告。錯誤:'outList'在此函數中未初始化使用[-Werror =未初始化]
這裏是我的代碼:
char **outList;
*outList = strdup(cloudDevice);
printf("this is device XML message: %s",*outList);
任何想法,爲什麼?謝謝
它的抱怨,因爲你使用的是未初始化的指針,您引用outList
他隨時隨地
爲什麼要使用char **
而不是char *
pointes的過嗎?
char *outList;
outList = strdup(cloudDevice);
printf("this is device XML message: %s", outList);
這是一個功能測試,所以我需要使用char ** –
我想通了!我不得不使用malloc
。
char **outList = malloc(sizeof (char **) * 256) ;
outList = strdup(cloudDevice);
printf("this is device XML message: %s",*outList);
不,你不是。 (1)在所有需要'sizeof(char *)'的邏輯中(分配一些'char *',返回一個指向它們的指針)。 (2)爲什麼'256'? (3)在你的第二行,你需要分配給'* outList'。你的編譯器應該對此進行尖叫。 – Quentin
char ** outList; * outList = strdup(cloudDevice); printf(「這是設備XML消息:%s」,* outList); –