DAVID J.馬蘭:所以事實證明, 複製一個字符串是不是幾乎一樣 簡單的複製一個原始的, 像int或浮點數。 畢竟,引擎蓋下方的字符串 是一個字符序列。 所以複製的字符串,因此,具有以 涉及抄襲的全序列 字符。 讓我們把注意力轉回了 最後的實施和撕裂了這 線,串T等於s,這 顯然是不夠的。 讓我們用一條線代替它了 看起來,相反,像這樣。 串T得到的字符串長度的malloc 一個char第加1倍。 現在有報價有點打算 在這行代碼。 首先,malloc的,短期的記憶 分配,以及 功能做到了這一點。 給定一個整數,它返回到您的 的內存塊的地址 很多字節。 與此同時,s的串長度加1 是為了表示我們要為 多少個字節為s已經佔據, 包括空終止時, 反斜線0在一個字符串的末尾。 同時,我不一定記得 多大的char是,即使 雖然在大多數系統上,它只是1 字節,所以我會打電話給字符的大小 動態計算出有多大 個人性格。 一旦相乘,我回來了 我需要的總字節數。 但是如果失敗的malloc什麼 返回我們所需要的內存? 我想最好是檢查如下。 如果t等於null,然後我第一次去 自由秒,返回由獲得內存 字符串,然後我要去 返回1,表示錯誤。 但是,如果一切順利,我將繼續 使用一個四循環和迭代 如下。 對於int我得到0,n等於 s的字符串的長度。 我要做到這一點,只要我是 小於或等於n,這樣我 通過與包括重複了 空終止字符在s中。 並在每次迭代中,我 要增加我。 同時,該環的內側,複製 的s i個字符到T的第i個 位置,只需做T 支架我得到s支架I。 我想最好加一個額外的 行我的代碼。 特別是,因為我現在使用 malloc的,要求的內存,這是我的 責任,以釋放該存儲器 當我用它我做的,就像我們 要釋放內存這 通過GET字符串給我們。 所以在這個節目的最後,我 要添加一個額外的行 在返回前釋放T 0表示成功。 現在,讓我們保存,編譯,和 運行這個新的程序。 讓副本1點斜線副本1。 我會這樣說 你好全部用小寫。 幸好,這時候我的 原來保持不變。 你好全部用小寫。 但副本,的確,資本化。