簡體   English   中英

在C中修改字符串數組中的字符串

[英]Modifying strings in a string array in C

這是我的問題...我創建了這樣的字符串數組。

char *name[12];

然后,用戶鍵入12個不同的名稱,以便我可以將它們保存在該數組中。 但眾所周知,如果不初始化變量,則變量中會包含“垃圾”。 因此,我開始正確保存名稱,直到第5個名稱,然后崩潰,我不知道為什么。 因此,我嘗試初始化每個元素,但隨后不允許我更改內容。

這就是我寫入數組的每個元素的方式:

printf("Type your name: ");
fflush(stdin);
gets( name[0] ); //I use a for to move into every element

我想知道是否有任何方法可以初始化數組,然后再更改其內容。 我已經嘗試過strcpy(); 但是我有同樣的錯誤。 或如何刪除該“垃圾”以阻止它導致我的錯誤。

謝謝,如果我拼錯了,抱歉。 英語不是我的母語。

您已經為12個指針分配了空間; 您從未為12個字符串分配空間,更不用說將指向該空間的指針分配給數組中的指針了。

問題是您擁有char指針數組,但尚未初始化它們或以任何方式為其分配空間。 因此,您不知道使用它指向的地址時會發生什么。

您必須先遍歷數組並初始化元素,然后才能使用它們。

name[0] = malloc (SIZE);

您可以嘗試讀取用戶輸入的緩沖區來獲得輸入的數據的長度,然后malloc阿婷只是正確的空間,或具有內存使用它之前分配一個預先定義的塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM