即時編寫一個程序,它將用戶輸入的字符串存儲在一個數組中。然後我將數組傳遞給一個函數來打印第二個元素。但是,我意識到程序崩潰時,執行功能內的打印。編寫一個函數來打印存儲在數組中的字符串
我的示例代碼如下:
main()
{
int num, count;
char strStorage[10][10];
printf("\nEnter how many strings: ");
scanf("%d" , &num);
fflush(stdin);
for (count = 0 ; count < num ; count++)
{
printf("Enter a string: ");
gets(strStorage[count]);
fflush(stdin);
}
//This works
printf("%s", strStorage[2]);
printMyArray(strStorage);
}
void printMyArray(char *myArray[ ])
{
//This doesnt work
printf("%s", myArray[2]);
}
林,以瞭解數組是如何被傳遞給函數做這個。如果有人能幫助我,請欣賞它。
感謝
您是否收到任何錯誤消息?你在使用什麼環境? GCC,Visual Studio?還要考慮,你正在使用固定大小的數組。如果你放置超過9個字符(不要忘記尾部'\ 0',你會覆蓋數組內部的邊界)。在C中,您不會傳遞數組,而是實際上指向變量的指針或地址。 – 2013-02-15 11:08:48
注意:您不應該使用'gets',而應該使用指定'stdin'作爲輸入流的'fgets'。 – JBL 2013-02-15 11:09:58
該程序崩潰,因爲我得到Windows錯誤報告thingy。 – kype 2013-02-15 11:26:45