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 برابر است، که به وضوح کافی نیست. 9 00:00:21,470 --> 00:00:24,440 اجازه دهید آن را با یک خط که به نظر می رسد، به جای آن، مثل این. 10 00:00:24,440 --> 00:00:34,020 عبارات T می شود malloc از طول رشته از بازدید کنندگان علاوه 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 در همین حال، طول رشته از بازدید کنندگان به علاوه 1 به معنای نشان می دهد که ما به عنوان می خواهم 17 00:00:50,090 --> 00:00:54,690 بسیاری از بایت به بازدید کنندگان در حال حاضر اشغال، از جمله نابودگر تهی آن، 18 00:00:54,690 --> 00:00:57,050 بک اسلش 0 در پایان یک رشته است. 19 00:00:57,050 --> 00:01:00,170 >> در همین حال، I لزوما به یاد داشته باشید چقدر بزرگ کاراکتر است، حتی 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 برابر تهی، سپس من اول قرار به رایگان، حافظه های GET بازگشت 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 برای من بین المللی دریافت 0، N برابر طول رشته است. 30 00:01:36,000 --> 00:01:40,350 من قصد دارم برای انجام این کار تا زمانی که من است کمتر از یا به نفر مساوی به طوری که I 31 00:01:40,350 --> 00:01:44,460 تکرار تا از طریق و از جمله کارکتر های پایان تهی در ثانیه. 32 00:01:44,460 --> 00:01:47,450 >> و در هر تکرار، من هستم رفتن به افزایش من. 33 00:01:47,450 --> 00:01:52,496 در همین حال، در داخل این حلقه، کپی ها در شخصیت i ام را به من ام تی در 34 00:01:52,496 --> 00:01:59,310 مکان، آن را کافی برای انجام این کار تی براکت من می شود بازدید کنندگان براکت من. 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