>> 揚聲器1：讓我們寫一個程序， 從用戶得到的字符串不
使用CS50圖書館 函數GetString的。
要做到這一點，我們將繼續使用 scanf函數，該函數的GetString的
函數實際上使用 引擎蓋下方。
但我要故意這樣做 在越野車的方式。
我會做的方式，我認為 會是正確的，但事實證明，
我的假設是要 是相當，相當的缺陷。
而事實上，相當危險。
因為像我快要錯誤 使得可以通過對手所利用
這樣，您的機器或程序 可以接管可能。
>> 讓我們開始如下。
首先，讓我們聲明我們的字符串， 現在也被稱為一個char星，
並調用它s。
讓接下來的提示輸入字符串的用戶， 與“字符串，請。”和
現在讓我們得到字符串從用戶 使用scanf函數，報價引文結束，“％s的。”在
換句話說，讓我們來告訴scanf函數，我們 確實是希望得到一個字符串
從用戶。
>> 但現在我們需要告訴scanf函數 另一件事 -
放在哪裡的字符串 用戶所提供的。
嗯，我會很簡單地啟動 用逗號秒，指定我想
scanf函數把字符串那裡。
我接下來將要打印出來的東西 如printf“感謝您的％s的
反斜杠Ñ逗號。“與往常一樣，我 要通過在字符串，秒。
現在讓我們保存，編譯並運行此 程序，看看如果我們不能誘發
這個問題我預言。
>> 使scanf函數-1。
./scanf-1。
字符串請。
讓我們提供的東西一樣，“你好。” “謝謝你的空。”嗯，這不是
我所期待的。
那麼，什麼是怎麼回事？
>> 嗯，原來是因為我們聲明 S作為一個char明星，但我們沒
實際上存儲在s的地址 的實際內存塊，scanf函數沒有
必須隨時隨地把字符串 用戶鍵入。
事實上，如果用戶要鍵入現在在 一個更長的字符串不是“你好”，
比如幾行文字或 文本的幾個段落，這是相當
可能我們會誘發 所謂分段錯誤。
>> 因為scanf函數是不會知道 我還沒有真正把一個地址
裡面的秒。
相反，它會看到一些價值 s中，一些模式位可能
很好是一個垃圾值， 那裡只是偶然。
和scanf還是要去嘗試寫 用戶字符串到該地址，
即使它是一個垃圾值，這 確實可以導致系統崩潰。
>> 那麼我們如何解決這一問題？