我有,而在C.創建一個簡單的程序大的問題Ç - 字符串數組的創建,幫助請求
我有以下功能:
void createStrings (char *dictionary[], int *n) {
int i;
char word[20];
printf ("Insert how many words to use: ");
scanf ("%d", &(*n));
// Initialization
for (i = 0; i < *n; i++) {
dictionary[i] = '\0';
}
// Populating the array with words
for (i = 0; i < *n; i++) {
printf ("Insert the word in position %d: ", i);
scanf("%s", word);
dictionary[i] = word;
}
}
在主我讀剛纔使用的數組詞彙
printf ("Following words have been inserted:\n");
for (i = 0; i < n; i++) {
printf ("dictionary[%d] = %s\n", i, dictionary[i]);
}
我很確定這最後一個循環已經實施得很好。
當我運行該程序,並嘗試插入,例如,三個不同的詞,如「一」「二」和「零」我得到以下輸出:
插入多少字的使用方法: 3
插入字號碼0:單
插入字編號1:兩個
插入字編號2:零
個下列詞語已經被插入:
辭典[0] =零
辭典[1] =零
字典[2] =零
這就像只有最後一個字我插入得到保存,循環一路回去覆蓋數組的所有其他元素。
任何幫助將不勝感激。
非常感謝,這解決了我的問題!也感謝其他人! – wiredmark 2012-01-10 12:10:19
如果你只是添加'strdup',你會引入內存泄漏。 – 2012-01-10 12:18:38
沒錯,但是這個代碼有很多可能的問題;因此我建議將它帶到[CodeReview](http://codereview.stackexchange.com/),而不是在這裏解決它們。 – Useless 2012-01-10 12:20:31