2013-12-13 90 views

回答

2

切勿使用gets功能。這本質上是不安全的,因爲沒有辦法防範超支(用戶輸入的數據比您準備接受的要多)。實際上,2011年的ISO C標準已將其從語言中刪除。

您應該改爲使用fgets()。使用起來有點複雜(一方面,它將字符串中的'\n'行結束符保留),但它允許您指定要讀取的最大字符數。

您的getStr函數可能不需要採取char**參數;一個char*會做,因爲它不會修改指針,只是將數據讀入指針指向的數組中。

您需要分配一個char數組來讀取數據。你可以聲明一個數組對象:

char line[200]; // for example 

,或者使用malloc分配的空間。

還有一件事:void main()是不正確的。 (編譯器可以接受它,但沒有充分的理由使用它。)正確的定義是int main(void)。如果你有一本書告訴你使用void main(),它是由不熟悉C語言的人編寫的,它可能有更嚴重的錯誤。

看一看comp.lang.c FAQ

相關問題