1 00:00:00,000 --> 00:00:00,410 2 00:00:00,410 --> 00:00:03,130 >> Дэвід Дж. Малан: Вось і атрымліваецца, што капіяванне радкі, не так 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 лінія, радок т роўная с, што відавочна не была дастатковай. 9 00:00:21,470 --> 00:00:24,440 Давайце заменім яго з лініяй, якая выглядае, а не, як гэта. 10 00:00:24,440 --> 00:00:34,020 Радок т атрымлівае Таноса даўжыні радкі з S Plus 1 раз памерам з гольца. 11 00:00:34,020 --> 00:00:36,320 >> Зараз ёсць цытата трохі збіраецца у гэтым радку кода. 12 00:00:36,320 --> 00:00:39,330 Па-першае, Таноса, кароткія для памяці вылучэнне і 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 >> Між тым, я не абавязкова памятаць наколькі вялікі сімвал ёсць, нават 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 >> Але што, калі Таноса не ў стане вярнуць памяць мы павінны? 24 00:01:14,680 --> 00:01:16,730 Я б лепш праверыць, што ў наступным. 25 00:01:16,730 --> 00:01:23,330 Калі т роўная нуля, то я спачатку збіраўся вызваліць з, памяць, які вяртаецца 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, п роўных даўжыня радка с. 30 00:01:36,000 --> 00:01:40,350 Я збіраюся зрабіць гэта да тых часоў, як я гэта менш або роўна п так, каб я 31 00:01:40,350 --> 00:01:44,460 ітэрацыі праз ўключна нуль завяршальны знак у с. 32 00:01:44,460 --> 00:01:47,450 >> І на кожнай ітэрацыі, я збіраецца павялічыць I. 33 00:01:47,450 --> 00:01:52,496 Між тым, ўнутры гэтай завесы, капіяванне ы I-ы знак у г-га T, 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