1 00:00:00,000 --> 00:00:00,410 2 00:00:00,410 --> 00:00:03,130 >> DAVID J.馬蘭:所以事實證明, 複製一個字符串是不是幾乎一樣 3 00:00:03,130 --> 00:00:05,750 簡單的複製一個原始的, 像int或浮點數。 4 00:00:05,750 --> 00:00:09,190 畢竟,引擎蓋下方的字符串 是一個字符序列。 5 00:00:09,190 --> 00:00:13,130 所以複製的字符串,因此,具有以 涉及抄襲的全序列 6 00:00:13,130 --> 00:00:14,240 字符。 7 00:00:14,240 --> 00:00:17,470 >> 讓我們把注意力轉回了 最後的實施和撕裂了這 8 00:00:17,470 --> 00:00:21,470 線,串T等於s,這 顯然是不夠的。 9 00:00:21,470 --> 00:00:24,440 讓我們用一條線代替它了 看起來,相反,像這樣。 10 00:00:24,440 --> 00:00:34,020 串T得到的字符串長度的malloc 一個char第加1倍。 11 00:00:34,020 --> 00:00:36,320 >> 現在有報價有點打算 在這行代碼。 12 00:00:36,320 --> 00:00:39,330 首先,malloc的,短期的記憶 分配,以及 13 00:00:39,330 --> 00:00:40,700 功能做到了這一點。 14 00:00:40,700 --> 00:00:44,740 給定一個整數,它返回到您的 的內存塊的地址 15 00:00:44,740 --> 00:00:45,960 很多字節。 16 00:00:45,960 --> 00:00:50,090 與此同時,s的串長度加1 是為了表示我們要為 17 00:00:50,090 --> 00:00:54,690 多少個字節為s已經佔據, 包括空終止時, 18 00:00:54,690 --> 00:00:57,050 反斜線0在一個字符串的末尾。 19 00:00:57,050 --> 00:01:00,170 >> 同時,我不一定記得 多大的char是,即使 20 00:01:00,170 --> 00:01:04,340 雖然在大多數系統上,它只是1 字節,所以我會打電話給字符的大小 21 00:01:04,340 --> 00:01:08,210 動態計算出有多大 個人性格。 22 00:01:08,210 --> 00:01:12,550 一旦相乘,我回來了 我需要的總字節數。 23 00:01:12,550 --> 00:01:14,680 >> 但是如果失敗的malloc什麼 返回我們所需要的內存? 24 00:01:14,680 --> 00:01:16,730 我想最好是檢查如下。 25 00:01:16,730 --> 00:01:23,330 如果t等於null,然後我第一次去 自由秒,返回由獲得內存 26 00:01:23,330 --> 00:01:27,120 字符串,然後我要去 返回1,表示錯誤。 27 00:01:27,120 --> 00:01:30,360 >> 但是,如果一切順利,我將繼續 使用一個四循環和迭代 28 00:01:30,360 --> 00:01:31,110 如下。 29 00:01:31,110 --> 00:01:36,000 對於int我得到0,n等於 s的字符串的長度。 30 00:01:36,000 --> 00:01:40,350 我要做到這一點,只要我是 小於或等於n,這樣我 31 00:01:40,350 --> 00:01:44,460 通過與包括重複了 空終止字符在s中。 32 00:01:44,460 --> 00:01:47,450 >> 並在每次迭代中,我 要增加我。 33 00:01:47,450 --> 00:01:52,496 同時,該環的內側,複製 的s i個字符到T的第i個 34 00:01:52,496 --> 00:01:59,310 位置,只需做T 支架我得到s支架I。 41 00:01:59,320 --> 00:02:02,750 >> 現在,讓我們保存,編譯,和 運行這個新的程序。 42 00:02:02,750 --> 00:02:06,690 讓副本1點斜線副本1。 43 00:02:06,690 --> 00:02:09,460 我會這樣說 你好全部用小寫。 44 00:02:09,460 --> 00:02:12,280 幸好,這時候我的 原來保持不變。 45 00:02:12,280 --> 00:02:13,660 你好全部用小寫。 46 00:02:13,660 --> 00:02:15,540 但副本,的確,資本化。 47 00:02:37,120 --> 00:02:38,963