1 00:00:00,000 --> 00:00:00,410 2 00:00:00,410 --> 00:00:03,130 >> DAVID J. Malan: Għalhekk jirriżulta li ikkupjar string mhijiex kważi bħala 3 00:00:03,130 --> 00:00:05,750 sempliċi kemm ikkupjar primitive, bħal int jew float. 4 00:00:05,750 --> 00:00:09,190 Wara kollox, taħt il-barnuża string huwa karattri sekwenza. 5 00:00:09,190 --> 00:00:13,130 Allura ikkupjar string, għalhekk, għandu jinvolvu ikkupjar dik is-sekwenza sħiħa ta ' 6 00:00:13,130 --> 00:00:14,240 karattri. 7 00:00:14,240 --> 00:00:17,470 >> Ejja tagħti attenzjoni tagħna lura għal dak aħħar implimentazzjoni u RIP din 8 00:00:17,470 --> 00:00:21,470 line, t string ugwali i, li b'mod ċar ma kienx suffiċjenti. 9 00:00:21,470 --> 00:00:24,440 Ejja tibdilha ma 'linja li jistenna, minflok, bħal dan. 10 00:00:24,440 --> 00:00:34,020 String t gets malloc 'tul sensiela ta' i plus 1 darbiet id-daqs ta 'char. 11 00:00:34,020 --> 00:00:36,320 >> Issa hemm kwotazzjoni daqsxejn tmur fuq din il-linja tal-kodiċi. 12 00:00:36,320 --> 00:00:39,330 L-ewwel, malloc, qosra għall-memorja allokazzjoni, u l- 13 00:00:39,330 --> 00:00:40,700 funzjoni ma dan. 14 00:00:40,700 --> 00:00:44,740 Minħabba integer, dan jirritorna lill inti l- indirizz ta 'blokki ta' memorja ta ' 15 00:00:44,740 --> 00:00:45,960 li ħafna bytes. 16 00:00:45,960 --> 00:00:50,090 Sadanittant, it-tul sensiela ta 's plus 1 huwa maħsub biex jindika li rridu bħala 17 00:00:50,090 --> 00:00:54,690 ħafna bytes kif i diġà tokkupa, inkluż it-terminatur null tagħha, il- 18 00:00:54,690 --> 00:00:57,050 backslash 0 fl-aħħar ta 'sekwenza. 19 00:00:57,050 --> 00:01:00,170 >> Sadanittant, I mhux bilfors tiftakarx kemm hu kbir char huwa, anki 20 00:01:00,170 --> 00:01:04,340 għalkemm fuq bosta sistemi huwa sempliċiment 1 byte, so I ser sejħa daqs tal char li 21 00:01:04,340 --> 00:01:08,210 figura dinamiku kemm hu kbir karattru individwali huwa. 22 00:01:08,210 --> 00:01:12,550 Ladarba immultiplikat flimkien, niġi lura l- numru totali ta 'bytes li għandi bżonn. 23 00:01:12,550 --> 00:01:14,680 >> Imma x'jiġri jekk malloc jonqos milli jirritorna l-memorja għandna bżonn? 24 00:01:14,680 --> 00:01:16,730 I d aħjar jiċċekkja għal dan kif ġej. 25 00:01:16,730 --> 00:01:23,330 Jekk t tkun daqs null, allura jien l-ewwel ser għall ħielsa i, il-memorja lura minn get 26 00:01:23,330 --> 00:01:27,120 spag, u mbagħad jien ser ritorn 1, li turi l-iżball. 27 00:01:27,120 --> 00:01:30,360 >> Imma jekk kollox huwa tajjeb, jien ser tipproċedi li jużaw erba loop u jtenni 28 00:01:30,360 --> 00:01:31,110 kif ġej. 29 00:01:31,110 --> 00:01:36,000 Għal int i tikseb 0, n ugwali it-tul sensiela ta 's. 30 00:01:36,000 --> 00:01:40,350 Jien ser jagħmlu dan sakemm i huwa inqas minn jew ugwali għal n hekk li I 31 00:01:40,350 --> 00:01:44,460 jtenni up permezz ta 'u inkluż il- karattru li jtemm null s. 32 00:01:44,460 --> 00:01:47,450 >> U fuq kull iterazzjoni, jien se inkrement i. 33 00:01:47,450 --> 00:01:52,496 Sadanittant, ġewwa ta 'dan loop, kopja tal-karattru i-th fil-T i-th 34 00:01:52,496 --> 00:01:59,310 post, huwa biżżejjed li tagħmel t bracket i gets bracket s i. 41 00:01:59,320 --> 00:02:02,750 >> Ejja issa jiffranka, tiġbor, u run dan il-programm il-ġdid. 42 00:02:02,750 --> 00:02:06,690 Jagħmlu kopja kopja 1 dot slash 1. 43 00:02:06,690 --> 00:02:09,460 U jien ser ngħid xi ħaġa simili bonjour kollha zghar. 44 00:02:09,460 --> 00:02:12,280 U Thankfully, din id-darba tiegħi oriġinali tibqa 'mhux mibdula. 45 00:02:12,280 --> 00:02:13,660 bonjour kollha zghar. 46 00:02:13,660 --> 00:02:15,540 Imma l-kopja huwa, tabilħaqq, kapitalizzat. 47 00:02:37,120 --> 00:02:38,963