1 00:00:00,000 --> 00:00:01,110 >> [Daqq ta mużika] 2 00:00:01,110 --> 00:00:10,567 3 00:00:10,567 --> 00:00:11,650 DAVID J. Malan: Kull dritt. 4 00:00:11,650 --> 00:00:15,610 Dan huwa CS50, u dan hija t-tmiem tal-Ġimgħa Erba. 5 00:00:15,610 --> 00:00:19,420 U wieħed mis-suġġetti llum hija li tal-forensiċi diġitali, 6 00:00:19,420 --> 00:00:20,989 l-arti ta 'rkupru informazzjoni. 7 00:00:20,989 --> 00:00:22,780 U fil-fatt, anki jekk int fil-midst 8 00:00:22,780 --> 00:00:25,070 dritt issa tal-Paċi fi Three u tbegħid, ġimgħa d-dieħla, 9 00:00:25,070 --> 00:00:27,880 l-enfasi se tkun fuq preċiżament dan id-dominju. 10 00:00:27,880 --> 00:00:30,686 >> Allura wieħed mill-impjiegi coolest I qatt kellhom kien lura fl-iskola gradwati, 11 00:00:30,686 --> 00:00:33,560 I meta kien qed jaħdem għall-popolazzjonijiet lokali Middlesex County District Attorney tal 12 00:00:33,560 --> 00:00:34,950 uffiċċju, forensika tagħmel xogħol. 13 00:00:34,950 --> 00:00:37,450 Allura essenzjalment, il Massachusetts Pulizija Stat, f'okkażjoni, 14 00:00:37,450 --> 00:00:40,100 meta jaħdmu fuq il-każijiet se jġibu affarijiet simili hard drives 15 00:00:40,100 --> 00:00:42,185 u floppy disks u karti tal-memorja u simili. 16 00:00:42,185 --> 00:00:44,060 U dawn se jgħadduhom lili u mentor tiegħi, 17 00:00:44,060 --> 00:00:48,070 u l-għan tagħna kien li ssib evidenza, jekk kienx hemm xi, fuq dawn il-mezzi. 18 00:00:48,070 --> 00:00:50,700 Glimpses Issa, inti tista raw din id-dinja tal-forensiċi 19 00:00:50,700 --> 00:00:53,000 fil-midja, TV u films. 20 00:00:53,000 --> 00:00:55,730 Imma l-impjieg kelli, u daresay li dinja, 21 00:00:55,730 --> 00:00:57,550 mhuwiex pjuttost simili inti tara dan. 22 00:00:57,550 --> 00:01:00,794 Ejja tagħti ħarsa lejn dak inti ħadthom probabbilment jidhru. 23 00:01:00,794 --> 00:01:01,460 [Daqq ta 'video] 24 00:01:01,460 --> 00:01:02,930 OK. 25 00:01:02,930 --> 00:01:05,380 Issa, ejja tikseb ħarsa tajba lejn inti. 26 00:01:05,380 --> 00:01:06,850 >> [Daqq ta mużika] 27 00:01:06,850 --> 00:01:12,260 28 00:01:12,260 --> 00:01:12,932 >> -Hold Dan. 29 00:01:12,932 --> 00:01:13,657 Mexxi dik lura. 30 00:01:13,657 --> 00:01:14,733 >> -Wait Minuta. 31 00:01:14,733 --> 00:01:15,233 Mur dritt. 32 00:01:15,233 --> 00:01:16,371 33 00:01:16,371 --> 00:01:16,870 -Hemm. 34 00:01:16,870 --> 00:01:17,369 Jiffriżaw dik. 35 00:01:17,369 --> 00:01:17,930 Full-iskrin. 36 00:01:17,930 --> 00:01:18,376 >> OK. 37 00:01:18,376 --> 00:01:18,875 Jiffriżaw dik. 38 00:01:18,875 --> 00:01:20,160 -Tighten Up fuq li, se inti? 39 00:01:20,160 --> 00:01:22,126 >> -Vector Fl fuq dak Guy mill-rota lura. 40 00:01:22,126 --> 00:01:24,435 >> -Zoom Fl-dritt hawn fuq dan il-post. 41 00:01:24,435 --> 00:01:28,580 >> -Bil L-apparat dritt, il- image jistgħu jiġu mkabbra u inċiżiv. 42 00:01:28,580 --> 00:01:29,330 >> Liema-li? 43 00:01:29,330 --> 00:01:30,780 >> -Hija S programm titjib. 44 00:01:30,780 --> 00:01:32,170 >> -Jista Inti ċar li up kwalunkwe? 45 00:01:32,170 --> 00:01:33,070 >> -I Ma jafux. 46 00:01:33,070 --> 00:01:34,150 Ejja ittejjeb dan. 47 00:01:34,150 --> 00:01:35,440 >> -Enhance Taqsima A6. 48 00:01:35,440 --> 00:01:36,570 49 00:01:36,570 --> 00:01:38,562 I msaħħa l-dettall, and-- 50 00:01:38,562 --> 00:01:40,020 -I Think hemm biżżejjed biex itejbu. 51 00:01:40,020 --> 00:01:40,976 Jgħadduha lill-iskrin tiegħi. 52 00:01:40,976 --> 00:01:42,559 >> -I Msaħħa r-riflessjoni fil-għajn tagħha. 53 00:01:42,559 --> 00:01:44,322 -Let S imexxu dan permezz video titjib. 54 00:01:44,322 --> 00:01:45,210 >> -Edgar, Inti tista ttejjeb dan? 55 00:01:45,210 --> 00:01:45,710 >> Hang fuq. 56 00:01:45,710 --> 00:01:47,570 57 00:01:47,570 --> 00:01:49,458 >> -I've Ilhom jaħdmu fuq din ir-riflessjoni. 58 00:01:49,458 --> 00:01:50,402 >> Riflessjoni ta 'xi ħadd -Hemm tal. 59 00:01:50,402 --> 00:01:50,902 >> -Reflection. 60 00:01:50,902 --> 00:01:52,870 -Hemm S riflessjoni tal-wiċċ tar-raġel. 61 00:01:52,870 --> 00:01:53,694 >> Riflessjoni -Il! 62 00:01:53,694 --> 00:01:54,610 -Hemm L riflessjoni. 63 00:01:54,610 --> 00:01:55,880 -Zoom Fuq il-mera. 64 00:01:55,880 --> 00:01:57,860 Tista 'tara riflessjoni. 65 00:01:57,860 --> 00:01:59,630 >> -Jista Inti jtejbu l-immaġini minn hawn? 66 00:01:59,630 --> 00:02:00,377 67 00:02:00,377 --> 00:02:01,210 -Jista Inti ittejjeb dan? 68 00:02:01,210 --> 00:02:02,190 -Jista Inti ittejjeb dan? 69 00:02:02,190 --> 00:02:03,066 -Jista Aħna ittejjeb dan? 70 00:02:03,066 --> 00:02:03,898 -Jista Inti ittejjeb dan? 71 00:02:03,898 --> 00:02:04,740 -Hold Fuq it-tieni. 72 00:02:04,740 --> 00:02:05,281 I ser itejbu. 73 00:02:05,281 --> 00:02:06,470 -Zoom Fl fuq il-bieb. 74 00:02:06,470 --> 00:02:06,970 -Times 10. 75 00:02:06,970 --> 00:02:08,009 -Zoom. 76 00:02:08,009 --> 00:02:08,509 -Move Fil. 77 00:02:08,509 --> 00:02:09,340 -Aktar. 78 00:02:09,340 --> 00:02:10,094 -Wait, Stop. 79 00:02:10,094 --> 00:02:10,750 -Stop. 80 00:02:10,750 --> 00:02:11,250 -Pause Dan. 81 00:02:11,250 --> 00:02:13,542 Dawwar us 75 gradi madwar il-vertikali, jekk jogħġbok. 82 00:02:13,542 --> 00:02:14,750 83 00:02:14,750 --> 00:02:16,127 >> -Stop. 84 00:02:16,127 --> 00:02:19,330 Mur lura għall-parti dwar il-bieb għal darb'oħra. 85 00:02:19,330 --> 00:02:21,420 >> -Got Enhancer immaġni li jistgħu Bitmap? 86 00:02:21,420 --> 00:02:24,420 >> -Maybe Nistgħu nużaw l Singh Pradeep metodu biex tara fil-twieqi. 87 00:02:24,420 --> 00:02:25,902 >> -Il Software huwa l-istat ta 'l-arti. 88 00:02:25,902 --> 00:02:26,866 >> -Il Eigenvalue huwa off. 89 00:02:26,866 --> 00:02:29,758 >> -Bil-Dritt kombinazzjoni ta 'algorithms-- 90 00:02:29,758 --> 00:02:32,168 >> Meħuda illuminazzjoni -He tal algoritmi għal-livell li jmiss, 91 00:02:32,168 --> 00:02:34,110 u nista jużawhom biex jsaħħu din ritratt. 92 00:02:34,110 --> 00:02:36,840 >> Lock fuq u tkabbar l-assi-z. 93 00:02:36,840 --> 00:02:37,351 >> -Enhance. 94 00:02:37,351 --> 00:02:37,850 Tittejjeb. 95 00:02:37,850 --> 00:02:38,720 -Enhance. 96 00:02:38,720 --> 00:02:40,070 -Freeze U jtejbu. 97 00:02:40,070 --> 00:02:43,420 [END daqq ta 'video] 98 00:02:43,420 --> 00:02:45,830 DAVID J. Malan: Allura dawn huma kliem kollha, imma dawn ma kienux 99 00:02:45,830 --> 00:02:47,870 użat fil-sentenzi korrett. 100 00:02:47,870 --> 00:02:52,370 U fil-fatt fil-futur, kwalunkwe ħin, jekk jogħġbok, inti tisma xi ħadd jgħid l-kelma, 101 00:02:52,370 --> 00:02:54,250 "Ittejjeb," chuckle biss ftit. 102 00:02:54,250 --> 00:02:57,190 Għaliex meta inti tipprova biex ittejjeb, per eżempju, dan huwa dak li jiġri. 103 00:02:57,190 --> 00:02:58,580 >> Allura hawnhekk ritratt sabiħ ħafna. 104 00:02:58,580 --> 00:02:59,720 Dan huwa Daven CS50 stess. 105 00:02:59,720 --> 00:03:03,740 U jissoponi li aħna riedu tiffoka fuq il-Twinkle fl-għajnejn tiegħu, 106 00:03:03,740 --> 00:03:05,870 jew l-riflessjoni tal- Guy ħżiena li kienet b'mod ċar 107 00:03:05,870 --> 00:03:07,820 maqbud mill-kameras tas-sigurtà. 108 00:03:07,820 --> 00:03:10,330 Dan huwa dak li jiġri meta inti zoom fl fuq xbieha li 109 00:03:10,330 --> 00:03:14,060 għandha biss numru finit ta 'bits assoċjati magħha. 110 00:03:14,060 --> 00:03:15,420 >> Dan huwa dak li inti se tikseb. 111 00:03:15,420 --> 00:03:19,190 U fil-fatt, fl-għajnejn Daven tal huwa iżda erba, forsi sitt pixels 112 00:03:19,190 --> 00:03:22,110 li jikkomponu eżattament dak kien glimmering hemmhekk. 113 00:03:22,110 --> 00:03:25,890 Allura Problema Set Erba finalment se jkollhom inti tesplora din id-dinja, partikolarment 114 00:03:25,890 --> 00:03:28,090 min-natura ta 'xi ħaġa nitolbu i file / o, fejn 115 00:03:28,090 --> 00:03:31,000 i / o huwa biss mod fancy ta ' qal input u output. 116 00:03:31,000 --> 00:03:34,280 >> Allura s'issa, kollha ta 'l-interazzjonijiet aħna kellna ma 'kompjuter 117 00:03:34,280 --> 00:03:36,770 kienu ġeneralment bil tiegħek keyboard u l-iskrin, 118 00:03:36,770 --> 00:03:40,770 iżda mhux daqshekk mal-hard disk, jew iffrankar ta 'fajls lil hinn mill-dawk li inti 119 00:03:40,770 --> 00:03:41,620 yourself jiktbu. 120 00:03:41,620 --> 00:03:44,570 Programmi tiegħek s'issa jkollhom ma kien joħloq, u l-iffrankar, 121 00:03:44,570 --> 00:03:46,270 u l-aġġornament fajls tagħhom stess. 122 00:03:46,270 --> 00:03:47,150 >> Ukoll, x'hemm fajl? 123 00:03:47,150 --> 00:03:48,105 Ukoll, xi ħaġa bħal JPEG. 124 00:03:48,105 --> 00:03:50,520 Din hija immaġni inti tista għandhom jew upload biex Facebook, 125 00:03:50,520 --> 00:03:51,690 jew tara kullimkien fuq il-web. 126 00:03:51,690 --> 00:03:54,460 Tabilħaqq, li ritratt aħna biss raw ta Daven kien JPEG. 127 00:03:54,460 --> 00:03:57,570 U x'hemm interessanti dwar fajls simili JPEGs 128 00:03:57,570 --> 00:04:02,170 huwa li jkunu jistgħu jiġu identifikati, tipikament, minn ċerti mudelli ta 'bits. 129 00:04:02,170 --> 00:04:05,200 >> Fi kliem ieħor, dak huwa li jiddistingwi JPEG minn GIF 130 00:04:05,200 --> 00:04:08,109 minn Ping minn Word dokument ta 'xi fajl Excel? 131 00:04:08,109 --> 00:04:09,900 Ukoll, huwa biss differenti mudelli ta 'bits. 132 00:04:09,900 --> 00:04:12,820 U dawk mudelli differenti huma normalment fil-bidu ta 'dawn il-fajls. 133 00:04:12,820 --> 00:04:18,200 >> Allura li meta l-kompjuter tiegħek tiftaħ Word doc, jew meta kompjuter tiftaħ JPEG, 134 00:04:18,200 --> 00:04:20,940 jidher tipikament fil- ewwel diversi bits fil-fajl. 135 00:04:20,940 --> 00:04:24,059 U jekk huwa jirrikonoxxi mudell, jgħid, oh, din hija immaġni. 136 00:04:24,059 --> 00:04:25,850 Let me juru li l-utent bħala grafika. 137 00:04:25,850 --> 00:04:27,870 Jew, oh, dan qisu doc ​​Word. 138 00:04:27,870 --> 00:04:30,480 Let me juru lill-utent bħala esej. 139 00:04:30,480 --> 00:04:33,020 >> Allura per eżempju, JPEGs, jirriżulta, huma 140 00:04:33,020 --> 00:04:35,460 pjuttost sofistikati taħt il-barnuża. 141 00:04:35,460 --> 00:04:40,140 Iżda l-ewwel tliet bytes fil aktar minn darba kull JPEG tibda bil dawn it-tliet numri. 142 00:04:40,140 --> 00:04:44,680 Allura byte żero, wieħed, u tnejn huma, fil- aktar minn darba kull JPEG, 255, allura n-numru 143 00:04:44,680 --> 00:04:46,675 216, allura n-numru 255. 144 00:04:46,675 --> 00:04:48,990 >> U dak li inti ser tkun kapaċi biex tibda tagħmel ġimgħa d-dieħla 145 00:04:48,990 --> 00:04:52,920 huwa attwalment poking taħt il-barnuża ta 'fajls simili JPEGs 146 00:04:52,920 --> 00:04:57,210 u bħal fajls Bitmap, u tara x'hemm dejjem kien hemm sakemm 147 00:04:57,210 --> 00:04:58,650 kif inti kont qed tuża kompjuter. 148 00:04:58,650 --> 00:05:01,860 >> Imma x'hemm ma jkunx hemm tipikament miktub bħal numri deċimali bħal dan. 149 00:05:01,860 --> 00:05:04,620 Xjenzjati tal-kompjuter ma tendenza li jitkellmu fil deċimali. 150 00:05:04,620 --> 00:05:06,139 Huma ma verament jitkellmu fil binarja. 151 00:05:06,139 --> 00:05:07,930 Tipikament, meta rridu li jesprimu numri, 152 00:05:07,930 --> 00:05:10,710 aħna attwalment jużaw hexadecimal, li inti tista 'recall 153 00:05:10,710 --> 00:05:13,027 minn, ngħidu aħna, Problem Set Wieħed, li kkontestat 154 00:05:13,027 --> 00:05:14,610 inti biex jaħsbu dwar sistema differenti. 155 00:05:14,610 --> 00:05:17,170 >> Aħna, naturalment, huma familjari bi deċimali, żero permezz disa. 156 00:05:17,170 --> 00:05:18,215 Aħna tkellimna dwar binarja. 157 00:05:18,215 --> 00:05:20,710 U aħna ma verament ikollhom għall-użu li ħafna hawn 158 00:05:20,710 --> 00:05:22,470 fuq barra, għaliex kompjuters se jużaw dak. 159 00:05:22,470 --> 00:05:24,900 Iżda programmaturi se ħafna spiss, imma mhux dejjem, 160 00:05:24,900 --> 00:05:29,360 jużaw hexadecimal, li ifisser biss għandek 16-ittri fil alfabett tiegħek, 161 00:05:29,360 --> 00:05:31,330 kif oppost għal tnejn jew 10. 162 00:05:31,330 --> 00:05:34,530 >> Allura kif taħseb li għodd sa ogħla minn disa f'hexadecimal? 163 00:05:34,530 --> 00:05:41,120 Inti tmur 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, biss billi konvenzjoni. 164 00:05:41,120 --> 00:05:43,540 Imma x'hemm importanti hu li kull minn dawn huwa simbolu wieħed. 165 00:05:43,540 --> 00:05:44,340 M'hemm l-ebda 10. 166 00:05:44,340 --> 00:05:48,400 M'hemm l-ebda 11, per se, għax kull ta 'ċifri diġitali tiegħek, eżatt bħal fil-deċimali 167 00:05:48,400 --> 00:05:51,940 u eżatt bħal fil binarja, għandhom biss jkun karattru wieħed, b'konvenzjoni. 168 00:05:51,940 --> 00:05:55,280 >> Allura li allura huwa l-alfabett li għandna għad-dispożizzjoni tagħna għal hexadecimal. 169 00:05:55,280 --> 00:05:58,600 Allura dak li ma JPEG look like jekk inti kellhom jiktbu out dawk l-ewwel tlieta 170 00:05:58,600 --> 00:06:01,980 bytes mhux bħala informazzjoni, iżda, per eżempju, bħala hexadecimal? 171 00:06:01,980 --> 00:06:03,640 U għaliex hija hex anki dak kollu li utli? 172 00:06:03,640 --> 00:06:05,290 >> Well, ħarsa lejn eżempju. 173 00:06:05,290 --> 00:06:09,030 Mela jekk nikteb l-bits li jirrappreżentaw dawn numbers-- deċimali 174 00:06:09,030 --> 00:06:12,450 dan jista 'jkun ftit Rusty issa minn ftit ġimgħat lura, 175 00:06:12,450 --> 00:06:14,820 iżda l-waħda xellug u l- dritt wieħed huma pjuttost faċli. 176 00:06:14,820 --> 00:06:17,990 255 kien in-numru akbar aħna jista 'jirrappreżenta bi tmien bits. 177 00:06:17,990 --> 00:06:18,820 Kien dawk kollha. 178 00:06:18,820 --> 00:06:21,320 Allura l-unika waħda li kemmxejn interessanti huwa l-waħda tan-nofs. 179 00:06:21,320 --> 00:06:24,700 U jekk inti tip ta 'do l- matematika, inti ser jiġi dedott li, tabilħaqq, 180 00:06:24,700 --> 00:06:27,949 dak il-mudell ta 'wieħed u żerijiet tirrappreżenta 216. 181 00:06:27,949 --> 00:06:30,240 Mela ejja biss jistipulaw għall issa li dawn huma korretti. 182 00:06:30,240 --> 00:06:31,730 Iżda għaliex dan huwa interessanti? 183 00:06:31,730 --> 00:06:33,970 >> Well, byte, naturalment, huwa tmien bits. 184 00:06:33,970 --> 00:06:38,980 U jirriżulta li jekk taħseb ta 'byte bħala żewġ biċċiet ta' erba 'bits, 185 00:06:38,980 --> 00:06:39,500 bħal dan. 186 00:06:39,500 --> 00:06:41,000 Let me biss żid xi spazju. 187 00:06:41,000 --> 00:06:42,550 Allura qabel, wara. 188 00:06:42,550 --> 00:06:46,520 Stajt biss miżjud xi spazju abjad f'ġieħ viżwalizzazzjoni hawnhekk. 189 00:06:46,520 --> 00:06:51,840 Kif tista aħna issa jirrappreżentaw in, jiġifieri, hexadeċimali kull quad ta 'bits, 190 00:06:51,840 --> 00:06:52,880 kull sett ta 'erba' bits? 191 00:06:52,880 --> 00:06:56,420 >> Allura per eżempju, fuq ix-xellug issa, aħna għandna 1111 fil binarja. 192 00:06:56,420 --> 00:07:00,420 X'inhu dak in-numru fil-deċimali, jekk inti tagħmel l-matematika? 193 00:07:00,420 --> 00:07:03,780 Inti għandek l-dawk post, il-post twos, il-fours post, u l-post eights. 194 00:07:03,780 --> 00:07:04,341 >> UDJENZA: 15. 195 00:07:04,341 --> 00:07:05,340 DAVID J. Malan: Huwa 15. 196 00:07:05,340 --> 00:07:08,340 Mela jekk nagħmlu tmien plus erba flimkien ma 'tnejn plus wieħed, irridu jiksbu 15. 197 00:07:08,340 --> 00:07:11,790 So I tista 'tikteb isfel 15 hawn taħt 1111, imma l-punt kollu hawnhekk 198 00:07:11,790 --> 00:07:13,190 huwa hexadecimal, mhux Deċimali. 199 00:07:13,190 --> 00:07:17,310 Allura minflok kitba fl-15, 1-5, Jien ser jikteb li fl hex, 200 00:07:17,310 --> 00:07:22,311 li jekk taħseb lura, jekk għandek żero permezz f, x'inhu 15 se tkun? 201 00:07:22,311 --> 00:07:22,810 UDJENZA: f. 202 00:07:22,810 --> 00:07:24,434 DAVID J. Malan: Għalhekk jirriżulta li l f. 203 00:07:24,434 --> 00:07:29,140 U inti tista 'taħdem li minn billi qal, ukoll, jekk huwa 10, imbagħad OK, f huwa 15. 204 00:07:29,140 --> 00:07:33,250 Allura fil-fatt, nistgħu jikteb dan l-istess sett ta 'numri kif f f. 205 00:07:33,250 --> 00:07:35,750 U mbagħad jekk nagħmlu daqsxejn ta 'matematika, aħna ser jiġi dedott li dan huwa d. 206 00:07:35,750 --> 00:07:38,650 Tmien huwa pjuttost faċli, għaliex aħna jkollhom wieħed fil-post eights. 207 00:07:38,650 --> 00:07:40,620 U mbagħad, aħna għandna koppja aktar f f'S. 208 00:07:40,620 --> 00:07:44,669 >> Allura dak bnedmin tendenza li tagħmel permezz tal-konvenzjoni meta jużaw hexadecimal huwa huma biss 209 00:07:44,669 --> 00:07:47,710 tikteb din ftit aktar konċiż, jeħles ta 'ħafna ta' dak l-ispazju abjad. 210 00:07:47,710 --> 00:07:50,890 U biss li tkun super ċara li qarrejja li dan huwa hexadecimal, 211 00:07:50,890 --> 00:07:54,670 il-konvenzjoni sempliċi fost bnedmin qed tikteb żero 212 00:07:54,670 --> 00:07:58,000 x, li m'għandha l-ebda tifsira oħra minn identifikatur viżwali ta ', 213 00:07:58,000 --> 00:07:59,590 hawn taqa 'numru hex. 214 00:07:59,590 --> 00:08:04,210 >> U mbagħad, inti tpoġġi l-żewġ numri, f f f'dan il-każ, allura d a, imbagħad f f. 215 00:08:04,210 --> 00:08:06,700 Allura qasir storja twila, hexadecimal biss tendenza 216 00:08:06,700 --> 00:08:11,990 li jkun utli għax kull wieħed tagħha ċifri, żero permezz f, perfettament linji 217 00:08:11,990 --> 00:08:13,880 up bil-mudell ta 'erba' bits. 218 00:08:13,880 --> 00:08:18,080 >> Mela jekk għandek żewġ numri hexadecimal, żero permezz F, għal darb'oħra u għal darb'oħra, 219 00:08:18,080 --> 00:08:20,256 li jagħtik perfettament tmien bits jew byte wieħed. 220 00:08:20,256 --> 00:08:22,380 Allura hu għalhekk li għandha tendenza li jkun konvenzjonalment utli. 221 00:08:22,380 --> 00:08:24,990 M'hemm l-ebda intellettwali kontenut verament lil hinn minn dak, 222 00:08:24,990 --> 00:08:27,010 għajr utilità attwali tagħha. 223 00:08:27,010 --> 00:08:29,310 >> Issa JPEGs mhumiex l-unika fajl formati għall-grafika. 224 00:08:29,310 --> 00:08:33,230 Inti tista 'tfakkar li hemm files bħal dan fid-dinja, 225 00:08:33,230 --> 00:08:34,830 inqas minn ftit snin lura. 226 00:08:34,830 --> 00:08:37,580 >> Allura dan kien effettivament installat fil-Windows XP 227 00:08:37,580 --> 00:08:39,960 fuq miljuni ta 'PCs madwar id-dinja. 228 00:08:39,960 --> 00:08:43,000 U dan kien fajl Bitmap, BMP. 229 00:08:43,000 --> 00:08:47,690 U fajl Bitmap, kif tkun taf tara li jmiss ġimgħa, ifisser biss mudell ta 'tikek, 230 00:08:47,690 --> 00:08:51,710 pixels kif dawn qed imsejħa, mappa fuq bits, verament. 231 00:08:51,710 --> 00:08:55,160 >> Allura x'hemm interessanti, għalkemm, dwar dan il-format fajl, BMP, huwa 232 00:08:55,160 --> 00:08:58,590 li taħtha il-barnuża, dan għandha aktar minn biss tliet bytes 233 00:08:58,590 --> 00:09:01,020 li jikkomponu header tagħha, hekk li jitkellmu, l-ewwel ftit gdim. 234 00:09:01,020 --> 00:09:03,330 Hija fil-fatt jistenna ftit ikkumplikat ewwel daqqa t'għajn. 235 00:09:03,330 --> 00:09:04,704 U tkun taf tara dan fil-P sett. 236 00:09:04,704 --> 00:09:06,810 U jkollna xi ħaġa out partikolari ta 'dan issa 237 00:09:06,810 --> 00:09:10,720 ma jkunx daqshekk importanti, bħala biss il-fatt li fil-bidu ta 'kull Bitmap 238 00:09:10,720 --> 00:09:13,823 fajl, format grafika, hemm mazz sħiħ ta 'numri. 239 00:09:13,823 --> 00:09:14,980 240 00:09:14,980 --> 00:09:16,720 >> Issa Microsoft, il- awtur ta 'dan il-format, 241 00:09:16,720 --> 00:09:18,820 tendenza li jsejħu dawk l-affarijiet mhux ints u Chars 242 00:09:18,820 --> 00:09:22,259 u sufruni iżda kliem u d kliem u twal u bytes. 243 00:09:22,259 --> 00:09:23,800 Allura dawn qed biss tipi differenti ta 'dejta. 244 00:09:23,800 --> 00:09:25,170 Huma qed ismijiet differenti għall-istess ħaġa. 245 00:09:25,170 --> 00:09:26,740 Imma inti taf tara li fil Set Erba P. 246 00:09:26,740 --> 00:09:31,450 >> Iżda din hija biss li jgħidu li jekk bniedem double-klikks xi fajl BMP fuq tiegħu 247 00:09:31,450 --> 00:09:35,015 jew hard drive tagħha, u tiftaħ tieqa up juri lilu jew lilha li l-immaġni, 248 00:09:35,015 --> 00:09:38,500 li ġara minħabba li l-operattiva sistema preżumibbilment ndunat mhux biss 249 00:09:38,500 --> 00:09:41,460 l-estensjoni fajl BMP fl-isem fajl, 250 00:09:41,460 --> 00:09:45,010 iżda wkoll il-fatt li hemm xi konvenzjoni għall-mudell ta 'bits 251 00:09:45,010 --> 00:09:47,490 fil-bidu nett ta dan il-fajl Bitmap. 252 00:09:47,490 --> 00:09:50,270 >> Imma ejja issa jiffokaw fuq tali file kkumplikata, 253 00:09:50,270 --> 00:09:52,120 iżda minflok fuq xi ħaġa bħal din. 254 00:09:52,120 --> 00:09:55,190 Ejja ngħidu hawn fil gedit, I biss ikollhom l-bidu 255 00:09:55,190 --> 00:09:57,070 ta 'programm li pjuttost sempliċi. 256 00:09:57,070 --> 00:09:58,860 Stajt ltqajna xi jinkludi top up. 257 00:09:58,860 --> 00:10:02,120 # Jinkludu "structs.h" Issa stajt ltqajna iżda I ser terga 'lura għal dik fil-mument. 258 00:10:02,120 --> 00:10:03,974 Iżda din hija utli għal issa. 259 00:10:03,974 --> 00:10:05,890 Allura dan huwa programm li għaddej biex jimplimentaw 260 00:10:05,890 --> 00:10:07,335 bħall-database tar-Reġistratur. 261 00:10:07,335 --> 00:10:09,710 Allura database ta 'studenti, u kull student fid-dinja 262 00:10:09,710 --> 00:10:13,190 għandha isem u dar u probabbilment xi Jittieħed oħra, iżda aħna ser jżommha sempliċi. 263 00:10:13,190 --> 00:10:15,140 Kull student għandha isem u dar. 264 00:10:15,140 --> 00:10:17,700 >> Mela jekk jien ridt li jiktbu programm li l-għan fil-ħajja 265 00:10:17,700 --> 00:10:19,860 kien biss li jtenni mill- żero fuq sa tlieta, 266 00:10:19,860 --> 00:10:22,070 jekk hemm tliet studenti fil-Harvard University. 267 00:10:22,070 --> 00:10:25,350 U jien biss trid li tikseb, bl-użu GetString, isem u d-dar ta 'kull student, 268 00:10:25,350 --> 00:10:26,600 u mbagħad biss print dawk out. 269 00:10:26,600 --> 00:10:28,630 >> Dan huwa tip simili Week Wieħed, Żewġ Week Jittieħed issa, 270 00:10:28,630 --> 00:10:30,810 fejn I nur die għal loop jew xi ħaġa bħal dik. 271 00:10:30,810 --> 00:10:34,500 U nixtieq li sejħa GetString ftit drabi, u mbagħad jistampaw f ftit drabi. 272 00:10:34,500 --> 00:10:37,340 Allura kif tista 'nagħmel dan, għalkemm, meta kemm isem u dar 273 00:10:37,340 --> 00:10:39,070 huma involuti għal kull student? 274 00:10:39,070 --> 00:10:42,830 >> Allura l-ewwel istint tiegħi jista jkun li tagħmel xi ħaġa bħal din. 275 00:10:42,830 --> 00:10:49,620 I jista ewwel ngħid, ukoll, jagħtu me, jgħidu, firxa ta 'spag imsejħa ismijiet. 276 00:10:49,620 --> 00:10:51,530 U jien ma tridx hardcode tliet hawn. 277 00:10:51,530 --> 00:10:53,064 What do I tixtieq li tqiegħed hemmhekk? 278 00:10:53,064 --> 00:10:55,730 Allura STUDENTI, għaliex dan huwa biss kostanti ddikjarat fil-quċċata, 279 00:10:55,730 --> 00:10:57,860 biss hekk I ma jkollhom hardcode tlieta fil-postijiet multipli. 280 00:10:57,860 --> 00:11:00,859 Dan il-mod, I tista 'bidla f'post wieħed, u din taffettwa bidla kullimkien. 281 00:11:00,859 --> 00:11:04,470 U mbagħad, I tista 'tagħmel string djar STUDENTI. 282 00:11:04,470 --> 00:11:10,250 >> U issa, I tista 'tagħmel xi ħaġa simili għall (i int = 0; i 00:11:14,390 So jien ittajpjar malajr, iżda dan huwa probabbilment sintassi familjari issa. 284 00:11:14,390 --> 00:11:17,030 >> U issa, dan kien aktar riċenti. 285 00:11:17,030 --> 00:11:22,890 Jekk I tixtieq li tqiegħed fil-i-th isem istudent, I think I do dan. 286 00:11:22,890 --> 00:11:26,480 U mbagħad, mhux ismijiet iżda djar parentesi i. 287 00:11:26,480 --> 00:11:29,930 I do dan, GetString, u ħallieh me jmorru lura u tiffissa din il-linja. 288 00:11:29,930 --> 00:11:30,430 Jaqblu? 289 00:11:30,430 --> 00:11:31,200 Ma naqbilx? 290 00:11:31,200 --> 00:11:32,366 Mhuwiex ħafna faċli għall-utent. 291 00:11:32,366 --> 00:11:33,890 I ma qal lill-utent x'għandek tagħmel. 292 00:11:33,890 --> 00:11:36,520 >> Imma issa, jekk I wkoll riedu aktar tard, ejja 293 00:11:36,520 --> 00:11:40,060 jiġifieri, jistampa dawn l-affarijiet out-- hekk Todo aktar tard. 294 00:11:40,060 --> 00:11:42,330 Jien ser jagħmlu aktar this-- dan forsi jiġifieri 295 00:11:42,330 --> 00:11:45,970 implimentazzjoni korretta ta ' jkollna l-ismijiet u djar, tliet 296 00:11:45,970 --> 00:11:48,870 minnhom totali ta 'kull, minn utent. 297 00:11:48,870 --> 00:11:51,280 >> Imma dan mhux disinn tajjeb ħafna, id-dritt? 298 00:11:51,280 --> 00:11:55,220 X'jiġri jekk student ikollu mhux biss l-isem u dar, iżda wkoll numru ta 'identifikazzjoni, 299 00:11:55,220 --> 00:11:57,770 u numru tat-telefon, u l-indirizz email, 300 00:11:57,770 --> 00:12:00,280 u forsi home page, u forsi Twitter manku, 301 00:12:00,280 --> 00:12:03,730 u kull numru ta 'dettalji oħra assoċjat ma 'student jew persuna, 302 00:12:03,730 --> 00:12:04,610 b'mod aktar ġenerali. 303 00:12:04,610 --> 00:12:07,720 Kif aħna jibdew żid funzjonalità għal dan il-programm? 304 00:12:07,720 --> 00:12:14,080 >> Well, I jħossu bħall-eħfef mod jista jkun li tagħmel xi ħaġa simili, ejja ngħidu, 305 00:12:14,080 --> 00:12:16,490 int STUDENTI ids. 306 00:12:16,490 --> 00:12:18,380 So I tista 'tpoġġi IDs kollha tagħhom fil hemmhekk. 307 00:12:18,380 --> 00:12:22,240 U mbagħad, għal xi ħaġa bħal numri tat-telefon, 308 00:12:22,240 --> 00:12:24,400 M'inix ċert kif jirrappreżenta dak għadha biss. 309 00:12:24,400 --> 00:12:30,280 Mela ejja imorru quddiem u biss sejħa dan Twitters STUDENTI, li 310 00:12:30,280 --> 00:12:33,550 hija ftit stramba, but-- u mazz aktar oqsma. 311 00:12:33,550 --> 00:12:36,360 >> Stajt bdew b'mod effettiv kopja u paste hawn. 312 00:12:36,360 --> 00:12:39,416 U dan se jikber pretty dens pretty malajr, right? 313 00:12:39,416 --> 00:12:42,290 Ma Ikun sbieħ jekk kien hemm fid-dinja struttura data magħrufa 314 00:12:42,290 --> 00:12:45,600 mhux bħala int jew string, imma xi ħaġa livell ogħla, l-estrazzjoni, hekk 315 00:12:45,600 --> 00:12:47,570 biex jitkellmu, magħrufa bħala student? 316 00:12:47,570 --> 00:12:50,220 C ma jiġu mal built-in funzjonalità għall-istudenti, 317 00:12:50,220 --> 00:12:52,260 imma dak jekk jien ridt li jagħtih din? 318 00:12:52,260 --> 00:12:55,640 >> Ukoll, jirriżulta, jien ser tiftaħ fajl imsejjaħ structs.h hawn, 319 00:12:55,640 --> 00:12:57,090 u inti tista 'tagħmel eżattament dan. 320 00:12:57,090 --> 00:12:58,290 U aħna qed tmur biex tibda tagħmel dan issa. 321 00:12:58,290 --> 00:13:01,490 U taħtha l-hood tal Set Tliet P, inti stajt diġà qed tagħmel dan issa. 322 00:13:01,490 --> 00:13:05,920 M'hemm l-ebda ħaġa bħal g rect jew a g ovali fil-lingwa ta 'programmar C. 323 00:13:05,920 --> 00:13:10,570 >> Folks fil Stanford implimentati dawk tipi ta 'data bl-użu dan l-approċċ hawnhekk, 324 00:13:10,570 --> 00:13:13,900 tiddikjara data ġdida tagħhom stess tipi jużaw keyword ġdida 325 00:13:13,900 --> 00:13:16,744 imsejħa Struct u ieħor wieħed imsejjaħ typedef. 326 00:13:16,744 --> 00:13:19,660 U fil-fatt, anki jekk l-sintassi jistenna ftit differenti minn għalf 327 00:13:19,660 --> 00:13:23,550 Rajna qabel, fl prinċipju, huwa super sempliċi. 328 00:13:23,550 --> 00:13:25,297 >> Dan ifisser biss "jiddefinixxi tip." 329 00:13:25,297 --> 00:13:27,255 Li għaddej biex tkun istruttura, u struttura 330 00:13:27,255 --> 00:13:29,400 huwa biss bħal kontenitur għal affarijiet multipli. 331 00:13:29,400 --> 00:13:31,780 U li l-istruttura li qed jiġri li jkollhom string imsejjaħ isem, 332 00:13:31,780 --> 00:13:33,210 u string imsejjaħ house. 333 00:13:33,210 --> 00:13:37,520 U ejja sejħa, biss għall-konvenjenza, dan l-istudent kollu struttura tad-data. 334 00:13:37,520 --> 00:13:40,320 >> Allura l-mument ikollok biex l-virgola, inti għandek issa 335 00:13:40,320 --> 00:13:43,280 maħluqa data tiegħek stess tip imsejħa student 336 00:13:43,280 --> 00:13:46,420 li issa stands flimkien int, u float, u char, u string, 337 00:13:46,420 --> 00:13:50,270 u g rect, u g ovali, u kull numru ta 'affarijiet oħra nies ivvintat. 338 00:13:50,270 --> 00:13:53,340 >> Allura x'hemm utli dwar dan issa huwa li jekk immur lura 339 00:13:53,340 --> 00:13:57,430 li Struct 0 u jintemm dan implimentazzjoni, li I kiteb 340 00:13:57,430 --> 00:14:02,080 bil-quddiem hawnhekk, avviż li kollha tal-messiness inevitabbli li 341 00:14:02,080 --> 00:14:05,490 kienet waslet biex tibda jiġri bħala I miżjuda numri tat-telefon u twitters u kollha 342 00:14:05,490 --> 00:14:07,370 dawn l-affarijiet oħra definizzjoni ta 'student, 343 00:14:07,370 --> 00:14:11,810 issa huwa konċiż jitgeżwer bħala wieħed biss firxa ta 'studenti. 344 00:14:11,810 --> 00:14:15,500 >> U kull wieħed minn dawk l-istudenti issa għandha affarijiet multipli ġewwa ta 'dan. 345 00:14:15,500 --> 00:14:16,930 Allura li biss tħalli mistoqsija waħda. 346 00:14:16,930 --> 00:14:19,700 Kif tista 'tikseb fil-isem, u l-dar, u l-ID, 347 00:14:19,700 --> 00:14:21,640 u kwalunkwe ħaġa oħra huwa ġewwa tal-istudent? 348 00:14:21,640 --> 00:14:22,930 Super sempliċi, kif ukoll. 349 00:14:22,930 --> 00:14:25,730 Sintassi New, iżda idea sempliċi. 350 00:14:25,730 --> 00:14:29,239 >> Inti sempliċiment indiċi fil-firxa, kif għamilna aħħar ġimgħa u dan. 351 00:14:29,239 --> 00:14:31,030 U x'hemm b'mod ċar l- biċċa ġdida ta 'sintassi? 352 00:14:31,030 --> 00:14:32,590 353 00:14:32,590 --> 00:14:35,880 Just., Li tfisser "go ġewwa l- istruttura u x-qasam msejħa 354 00:14:35,880 --> 00:14:39,030 isem, jiksbu l-qasam imsejħa dar, jiksbu l-qasam imsejħa istudent. " 355 00:14:39,030 --> 00:14:41,940 >> Għalhekk fl Set Tliet P, jekk int għadhom jaħdmu fuq li, 356 00:14:41,940 --> 00:14:44,020 u folks aktar għadhom huma, jirrealizzaw li kif inti 357 00:14:44,020 --> 00:14:46,130 tibda tuża affarijiet simili g rects u G ovali 358 00:14:46,130 --> 00:14:50,201 u affarijiet oħra li ma jidhirx li ġejjin minn Week Zero, One, jew tnejn, 359 00:14:50,201 --> 00:14:52,950 jirrealizzaw li dan għaliex Stanford iddikjarata xi tipi ġodda ta 'dejta. 360 00:14:52,950 --> 00:14:56,160 >> U fil-fatt, dan huwa eżattament dak li aħna ser do, kif ukoll, fir Set Erba P, meta 361 00:14:56,160 --> 00:14:59,880 nibdew biex jittrattaw ma 'affarijiet bħal stampi, bitmaps, u aktar. 362 00:14:59,880 --> 00:15:02,882 Allura li jinsab biss teaser u mudell mentali għal dak li huwa li ġejjin. 363 00:15:02,882 --> 00:15:04,590 Issa, I procrastinated daqsxejn dalgħodu. 364 00:15:04,590 --> 00:15:09,560 I kien tip ta 'kurjużi biex tara dak l-wallpaper Microsoft attwalment 365 00:15:09,560 --> 00:15:10,310 Dehra illum. 366 00:15:10,310 --> 00:15:15,200 U jirriżulta xi ħadd fl-2006 attwalment marret għal kważi preċiżament 367 00:15:15,200 --> 00:15:19,210 l-istess post li r-ritratt fir-realtà dak qisu li dawn il-jiem. 368 00:15:19,210 --> 00:15:21,380 Il-qasam issa huwa xi ftit overgrown. 369 00:15:21,380 --> 00:15:24,850 >> Allura jitkellem issa 'immaġini, ejja iġibu lura Daven hawn 370 00:15:24,850 --> 00:15:26,890 fuq l-iskrin u Nicholas, u biss infakkarkom 371 00:15:26,890 --> 00:15:30,540 li jekk inti tixtieq li jingħaqdu magħna għall-ikel dan Ġimgħa, ras għal URL tas-soltu tagħna 372 00:15:30,540 --> 00:15:31,440 hawn. 373 00:15:31,440 --> 00:15:33,530 >> Għalhekk, fejn ma we leave off nhar it-Tnejn? 374 00:15:33,530 --> 00:15:35,140 Aħna introdotti din il-problema, id-dritt? 375 00:15:35,140 --> 00:15:37,610 Dan kien apparentement a korretta implimentazzjoni ta 'tpartit, 376 00:15:37,610 --> 00:15:40,460 fejn inti tieħu żewġ ints, wieħed imsejjaħ, wieħed imsejjaħ b, 377 00:15:40,460 --> 00:15:44,130 tpartit minnhom, bħad Laura għamlet hawn fuq il-palk mal-ħalib u l-ilma, 378 00:15:44,130 --> 00:15:46,820 bl-użu ta temporanju varjabbli, jew tazza vojta, 379 00:15:46,820 --> 00:15:50,540 sabiex inkunu tista 'tpoġġi b fil u fl b mingħajr ma tagħmel mess ta 'affarijiet. 380 00:15:50,540 --> 00:15:51,560 We użati varjabbli. 381 00:15:51,560 --> 00:15:52,870 Huwa sejjaħ temp. 382 00:15:52,870 --> 00:15:55,520 >> Imma dak kien il-fundamentali problema ma dan il-kodiċi nhar it-Tnejn? 383 00:15:55,520 --> 00:15:57,700 384 00:15:57,700 --> 00:15:58,870 Liema kienet l-problema hawn? 385 00:15:58,870 --> 00:16:00,106 386 00:16:00,106 --> 00:16:00,605 Yeah. 387 00:16:00,605 --> 00:16:01,970 >> UDJENZA: Huwa jieħu aktar spazju. 388 00:16:01,970 --> 00:16:04,719 >> DAVID J. Malan: Jieħu up aktar ispazju, għaliex jien jużaw varjabbli, 389 00:16:04,719 --> 00:16:05,400 u li OK. 390 00:16:05,400 --> 00:16:07,300 Dan huwa veru, imma jien se ngħid li l-OK. 391 00:16:07,300 --> 00:16:10,030 Huwa biss 32 bits fil-grand iskema ta 'affarijiet, hekk mhux big deal. 392 00:16:10,030 --> 00:16:10,655 Ħsibijiet oħra? 393 00:16:10,655 --> 00:16:12,572 UDJENZA: Huwa biss tpartit il-varjabbli lokalment. 394 00:16:12,572 --> 00:16:13,571 DAVID J. Malan: Eżattament. 395 00:16:13,571 --> 00:16:15,090 Hija biss tpartit-varjabbli lokalment. 396 00:16:15,090 --> 00:16:18,173 Minħabba kwalunkwe ħin inti sejħa function-- meta kelli l-trejs mill Annenberg 397 00:16:18,173 --> 00:16:19,840 aħħar darba, inti għandek prinċipali fuq il-qiegħ. 398 00:16:19,840 --> 00:16:23,560 Hekk kif inti sejħa funzjoni msejħa tpartit, tpartit ma jiksbu x uy, 399 00:16:23,560 --> 00:16:24,400 il-valuri oriġinali. 400 00:16:24,400 --> 00:16:26,392 X'jagħmel get swap, ma aħna jsostnu? 401 00:16:26,392 --> 00:16:27,100 Udjenza: Kopji. 402 00:16:27,100 --> 00:16:28,090 DAVID J. Malan: Allura kopji tagħhom. 403 00:16:28,090 --> 00:16:31,120 Allura jiġrilha wieħed u tnejn, jekk inti mfakkra l-eżempju mill-aħħar darba, 404 00:16:31,120 --> 00:16:34,730 iżda kopja ta 'wieħed u tnejn li huma skambjati b'suċċess. 405 00:16:34,730 --> 00:16:38,550 Iżda sfortunatament fl-aħħar, dawk il-valuri għadhom l-istess. 406 00:16:38,550 --> 00:16:41,880 Allura nistgħu naraw dan mal tagħna ħabib ġdid, wieħed jittama GDB, 407 00:16:41,880 --> 00:16:45,180 li inti jew il-TFS u l Ca jkollhom ġew gwida li inti lejn kif ġej. 408 00:16:45,180 --> 00:16:51,210 >> Allura l-ebda irtirar swap jistenna like-- ejja jiftħu this-- tidher bħal dan. 409 00:16:51,210 --> 00:16:54,160 Aħna initialized x għal wieħed, y għal tnejn. 410 00:16:54,160 --> 00:16:55,620 Kieku mazz ta 'print f'S. 411 00:16:55,620 --> 00:16:58,080 Iżda mbagħad, is-sejħa ċavetta hawn kien li tpartit, li 412 00:16:58,080 --> 00:17:00,260 huwa eżattament l-kodiċi we biss raw mument ilu. 413 00:17:00,260 --> 00:17:03,180 Liema hija korretta fl-ewwel t'għajn, iżda funzjonalment, 414 00:17:03,180 --> 00:17:06,800 dan il-programm ma taħdimx, għaliex dan ma tpartit permanenti xuy. 415 00:17:06,800 --> 00:17:10,190 >> Mela ejja ara dan, warm quick up hawn ma GDB, a ./noswap. 416 00:17:10,190 --> 00:17:11,867 417 00:17:11,867 --> 00:17:15,200 A mazz ta 'informazzjoni kbira li I ser teħles minn mal Kontroll L għal issa. 418 00:17:15,200 --> 00:17:17,516 U issa, jien se imorru quddiem u run. 419 00:17:17,516 --> 00:17:19,349 U sfortunatament, li ma kienet li utli. 420 00:17:19,349 --> 00:17:22,355 Hija dam il-programm ġewwa ta 'dan programm imsejjaħ GDB, debugger, 421 00:17:22,355 --> 00:17:23,730 iżda hija ma let me poke madwar. 422 00:17:23,730 --> 00:17:26,229 >> Allura kif nista attwalment nieqaf eżekuzzjoni ġewwa dan il-programm? 423 00:17:26,229 --> 00:17:27,410 424 00:17:27,410 --> 00:17:28,329 Allura break. 425 00:17:28,329 --> 00:17:32,340 UI jistgħu jiksru fuq kwalunkwe numru, wieħed, 10, 15 linja. 426 00:17:32,340 --> 00:17:35,530 Imma I tista 'wkoll break simbolikament billi qal break prinċipali. 427 00:17:35,530 --> 00:17:38,980 U li għaddej biex jistabbilixxu pawża punt, apparentement fil-linja 16 prinċipali. 428 00:17:38,980 --> 00:17:40,050 U fejn huwa linja 16? 429 00:17:40,050 --> 00:17:42,960 Ejja ħa mmorru sal-kodiċi u jitla 'sa noswap. 430 00:17:42,960 --> 00:17:46,930 U fil-fatt, linja 16 hija l- ewwel ħafna fil-programm. 431 00:17:46,930 --> 00:17:52,130 >> Allura issa, jekk I jimxi 'l quddiem u t-tip run dan iż-żmien, Ikteb, dan waqfa qasira. 432 00:17:52,130 --> 00:17:53,080 Mela ejja poke madwar. 433 00:17:53,080 --> 00:17:55,716 Stampa x-- għaliex huwa x żero? 434 00:17:55,716 --> 00:17:56,705 435 00:17:56,705 --> 00:17:57,830 U jinjora l-sinjal dollaru. 436 00:17:57,830 --> 00:17:59,725 Li jinsab biss għal fancier użu tal-programm. 437 00:17:59,725 --> 00:18:00,780 438 00:18:00,780 --> 00:18:03,140 Għaliex hija x żero fil-mument? 439 00:18:03,140 --> 00:18:03,640 Yeah. 440 00:18:03,640 --> 00:18:07,061 >> UDJENZA: Huwa waqfa qasira dritt qabel linja 16, ma attwalment fuq il-linja 16. 441 00:18:07,061 --> 00:18:08,060 DAVID J. Malan: Eżattament. 442 00:18:08,060 --> 00:18:11,630 GDB, kontumaċja, kien waqfa qasira eżekuzzjoni eżatt qabel il-linja 16. 443 00:18:11,630 --> 00:18:14,820 Għalhekk ma jkunx eżegwit, li ifisser x hija ta 'xi valur mhux magħruf. 444 00:18:14,820 --> 00:18:17,150 U aħna ltqajna xxurtjati li huwa xi ħaġa nadif bħal żero. 445 00:18:17,150 --> 00:18:20,310 Allura issa jekk I tip li jmiss, issa esegwiti 16. 446 00:18:20,310 --> 00:18:22,000 Huwa stennija għalija li tesegwixxi 17. 447 00:18:22,000 --> 00:18:23,400 Let me imorru quddiem u print x. 448 00:18:23,400 --> 00:18:24,094 Huwa wieħed. 449 00:18:24,094 --> 00:18:25,260 Let me imorru quddiem u y istampar. 450 00:18:25,260 --> 00:18:26,176 X'għandi I tara issa? 451 00:18:26,176 --> 00:18:27,660 452 00:18:27,660 --> 00:18:28,560 >> UDJENZA: [inaudible] 453 00:18:28,560 --> 00:18:29,165 >> DAVID J. Malan: A louder ftit. 454 00:18:29,165 --> 00:18:30,040 >> UDJENZA: [inaudible] 455 00:18:30,040 --> 00:18:30,537 456 00:18:30,537 --> 00:18:32,120 DAVID J. Malan: Mhux pjuttost konsensus. 457 00:18:32,120 --> 00:18:34,760 Allura iva, naraw xi valur żibel. 458 00:18:34,760 --> 00:18:37,862 Issa, y hija 134514064 hemmhekk. 459 00:18:37,862 --> 00:18:39,320 Ukoll, huwa biss xi valur żibel. 460 00:18:39,320 --> 00:18:41,350 Programm My użi RAM għal skopijiet differenti. 461 00:18:41,350 --> 00:18:42,350 Hemm funzjonijiet oħra. 462 00:18:42,350 --> 00:18:44,040 Nies oħra kiteb ġewwa kompjuter tiegħi. 463 00:18:44,040 --> 00:18:46,789 Allura dawk bits ġew użati għall- valuri oħra, u dak li jien jaraw 464 00:18:46,789 --> 00:18:49,470 huwa l-fdalijiet ta 'xi użu minn qabel ta 'dak l-memorja. 465 00:18:49,470 --> 00:18:53,350 >> Allura l-ebda big deal, għaliex malli tip I kif jmiss u mbagħad jistampaw y, 466 00:18:53,350 --> 00:18:55,640 huwa initialized li il-valur li nixtieq. 467 00:18:55,640 --> 00:18:57,400 Allura issa, ejja imorru quddiem ftit aktar mgħaġġel. 468 00:18:57,400 --> 00:18:58,540 N għal li jmiss. 469 00:18:58,540 --> 00:18:59,570 Ejja nagħmlu dan mill-ġdid. 470 00:18:59,570 --> 00:19:00,530 Ejja nagħmlu dan mill-ġdid. 471 00:19:00,530 --> 00:19:02,404 Imma ma rridx li hit hawnhekk, għaliex jekk I 472 00:19:02,404 --> 00:19:05,110 trid tara x'inhu għaddej ġewwa tal tpartit, x'inhu l-kmand? 473 00:19:05,110 --> 00:19:05,520 >> UDJENZA: passi. 474 00:19:05,520 --> 00:19:06,436 >> DAVID J. Malan: passi. 475 00:19:06,436 --> 00:19:09,800 Allura dan passi me fi funzjoni, minflok fuqha. 476 00:19:09,800 --> 00:19:12,270 U issa, huwa ftit cryptic onestament, iżda din hija biss 477 00:19:12,270 --> 00:19:14,581 javżak me jien fil-linja 33 issa. 478 00:19:14,581 --> 00:19:15,580 U ejja tagħmel dan mill-ġdid. 479 00:19:15,580 --> 00:19:16,080 Temperatura Stampa. 480 00:19:16,080 --> 00:19:17,129 481 00:19:17,129 --> 00:19:20,170 Valur Żibel, negattiv dan iż-żmien, iżda li biss għadu valur żibel. 482 00:19:20,170 --> 00:19:22,810 Mela ejja do jmiss, temperatura print. 483 00:19:22,810 --> 00:19:27,130 Huwa initialized għal 1, li kien il-valur ta 'x, aka a. 484 00:19:27,130 --> 00:19:29,110 >> Issa, fejn huma tagħna u X li ġejjin minn? 485 00:19:29,110 --> 00:19:32,510 Ukoll, avviż fil prinċipali, aħna imsejħa dawn x valuri u y. 486 00:19:32,510 --> 00:19:34,740 Aħna mbagħad għadda minnhom li tpartit kif ġej. 487 00:19:34,740 --> 00:19:37,010 X daħal ewwel, y comma. 488 00:19:37,010 --> 00:19:40,020 U mbagħad, swap tista jsejħulhom xuy. 489 00:19:40,020 --> 00:19:42,630 Iżda għaċ-ċarezza, huwa ssejjaħ minnhom u b. 490 00:19:42,630 --> 00:19:45,970 Iżda aub issa ser ikunu kopji ta 'xuy, rispettivament. 491 00:19:45,970 --> 00:19:50,660 >> Mela jekk jien jmorru lura għall GDB, temperatura issa huwa wieħed u issa huwa wieħed. 492 00:19:50,660 --> 00:19:56,130 Imma jekk I do jmiss u issa do print a, a diġà ġie mċaqalqa. 493 00:19:56,130 --> 00:20:00,030 Il-ħalib ġie jitferra 'l-ewwel ħġieġ meraq tal-larinġ li, jew viċi versa. 494 00:20:00,030 --> 00:20:04,750 >> U jekk jien tagħmel li jmiss darb'oħra, u issa jekk I jistampa bħala verifika sanità, 495 00:20:04,750 --> 00:20:07,687 a huwa għadu tnejn, iżda b issa huwa wieħed. 496 00:20:07,687 --> 00:20:08,770 Franchement, huwa għadu hemm. 497 00:20:08,770 --> 00:20:10,670 I ma 'kura dak temperatura hu. 498 00:20:10,670 --> 00:20:16,850 Imma malli I issa tip, ejja ngħidu, tkompli tmur lura, issa jien fl-aħħar 499 00:20:16,850 --> 00:20:17,480 il-programm. 500 00:20:17,480 --> 00:20:20,730 U sfortunatament, x hija xorta waħda u y għadu tnejn. 501 00:20:20,730 --> 00:20:22,272 >> Allura dak li kien l-utilità ta 'GDB hemmhekk? 502 00:20:22,272 --> 00:20:23,980 Hija ma għinni jiffissaw il-problema per se, 503 00:20:23,980 --> 00:20:26,265 iżda nisperaw għinni jifhimha bit-twettiq 504 00:20:26,265 --> 00:20:30,000 li iva, il-loġika tiegħi huwa dritt, iżda kodiċi tiegħi mhix finalment li 505 00:20:30,000 --> 00:20:31,450 impatt permanenti. 506 00:20:31,450 --> 00:20:34,570 Allura li hija problema aħna qed ser issa isolvu llum. 507 00:20:34,570 --> 00:20:37,870 >> Imma ejja nikseb hemm permezz ta 'dan. 508 00:20:37,870 --> 00:20:39,230 String huwa gidba. 509 00:20:39,230 --> 00:20:41,860 Hija, wisq, mhux tip data li teżisti fl C. Huwa 510 00:20:41,860 --> 00:20:44,750 kien sinonimu għal xi żmien għal xi ħaġa oħra, 511 00:20:44,750 --> 00:20:47,300 u nistgħu jiżvelaw li kif ġej. 512 00:20:47,300 --> 00:20:53,282 >> Let me imorru quddiem u tiftaħ programm imsejjaħ jqabblu-0. 513 00:20:53,282 --> 00:20:56,240 U minflok tip dan wieħed out, aħna ser tibda biex jimxu permezz tal-kodiċi 514 00:20:56,240 --> 00:20:58,040 I diġà kiteb, imma huwa biss ftit linji. 515 00:20:58,040 --> 00:20:59,570 Allura dan huwa jqabblu-0. 516 00:20:59,570 --> 00:21:02,380 U l-ewwel ħaġa li qed nagħmel huwa jkollna linja tat-test. 517 00:21:02,380 --> 00:21:05,610 >> Imma liema avviż jien tagħmel għall-ewwel darba. 518 00:21:05,610 --> 00:21:07,910 X'inhu differenti b'mod ċar dwar il-linja 21? 519 00:21:07,910 --> 00:21:10,020 520 00:21:10,020 --> 00:21:11,402 Attwalment, stenna minuta. 521 00:21:11,402 --> 00:21:12,110 Dan huwa tnejn kopja. 522 00:21:12,110 --> 00:21:13,568 Dan lanqas ma huwa l-programm dritt. 523 00:21:13,568 --> 00:21:14,780 Kull dritt, twissija ISPOILER. 524 00:21:14,780 --> 00:21:16,890 Kull dritt, hekk qatt f'moħħhom dik. 525 00:21:16,890 --> 00:21:18,520 Dik hija l-risposta għal mistoqsija futur. 526 00:21:18,520 --> 00:21:21,450 >> Hawnhekk huwa iqabblu-0, u jien dwar li tikseb linja ta 'test. 527 00:21:21,450 --> 00:21:22,435 Tal Program ferm aktar sempliċi. 528 00:21:22,435 --> 00:21:23,560 Allura dan huwa sempliċi. 529 00:21:23,560 --> 00:21:28,070 Dan huwa simili One Week, Week Żewġ Jittieħed fil-mument. string s = GetString. 530 00:21:28,070 --> 00:21:29,700 Issa, jien ngħid mill-ġdid stabbiliti hawn. 531 00:21:29,700 --> 00:21:31,830 string t = GetString. 532 00:21:31,830 --> 00:21:35,300 U mbagħad, l-aħħar ħaġa f'dan programm, kif ismu jissuġġerixxi, 533 00:21:35,300 --> 00:21:37,090 huwa jien ser jippruvaw biex iqabblu lilhom. 534 00:21:37,090 --> 00:21:40,709 >> Mela jekk i, l-ewwel string, ugwali = t, allura jien 535 00:21:40,709 --> 00:21:42,250 se ngħid inti tip l-istess ħaġa. 536 00:21:42,250 --> 00:21:44,291 Else, jien ser ngħid inti tip affarijiet differenti. 537 00:21:44,291 --> 00:21:45,880 Mela ejja tiġbor u tmexxi dan il-programm. 538 00:21:45,880 --> 00:21:48,481 Sabiex tagħmel jqabblu żero. 539 00:21:48,481 --> 00:21:48,980 Jistenna tajba. 540 00:21:48,980 --> 00:21:50,490 Ebda żbalji kumpilazzjoni. 541 00:21:50,490 --> 00:21:52,386 >> Let me imorru quddiem issa u t-tip ./compare-0. 542 00:21:52,386 --> 00:21:55,230 543 00:21:55,230 --> 00:21:59,220 Let me imorru quddiem u jgħidu xi ħaġa : Daven u xi ħaġa: Rob. 544 00:21:59,220 --> 00:22:00,450 U jien tip affarijiet differenti. 545 00:22:00,450 --> 00:22:01,250 S'issa, hekk tajjeb. 546 00:22:01,250 --> 00:22:02,680 Programm jidher li tkun korretta. 547 00:22:02,680 --> 00:22:03,880 >> Imma ejja run mill-ġdid. 548 00:22:03,880 --> 00:22:05,800 Say xi ħaġa: Gabe. 549 00:22:05,800 --> 00:22:07,140 Say xi ħaġa: Gabe. 550 00:22:07,140 --> 00:22:08,520 551 00:22:08,520 --> 00:22:09,020 Kull dritt. 552 00:22:09,020 --> 00:22:10,851 Maybe I hit l-ispazju bar jew xi ħaġa funky. 553 00:22:10,851 --> 00:22:11,600 Ejja nagħmlu dan mill-ġdid. 554 00:22:11,600 --> 00:22:13,020 Allura Zamyla. 555 00:22:13,020 --> 00:22:13,970 556 00:22:13,970 --> 00:22:14,470 Zamyla. 557 00:22:14,470 --> 00:22:15,740 558 00:22:15,740 --> 00:22:17,330 Affarijiet differenti. 559 00:22:17,330 --> 00:22:19,430 Allura dak li qed jiġri? 560 00:22:19,430 --> 00:22:23,200 >> Allura aħna għandna dawn iż-żewġ linji ta ' kodiċi, GetString qed jissejjaħ darbtejn. 561 00:22:23,200 --> 00:22:25,760 U mbagħad, jien sempliċiment jippruvaw iqabblu s u t. 562 00:22:25,760 --> 00:22:28,370 Imma dak li verament mbagħad qed jiġri? 563 00:22:28,370 --> 00:22:31,180 Well, kalligrafija tiegħi waslet biex biċċier dan l-eżempju kemmxejn. 564 00:22:31,180 --> 00:22:34,630 U ejja attwalment tarmi dan up hawn fuq, kif ukoll. 565 00:22:34,630 --> 00:22:37,390 566 00:22:37,390 --> 00:22:45,712 >> Allura għandna linja bħal string s = GetString. 567 00:22:45,712 --> 00:22:48,295 Allura dak sempliċement l-ewwel linja interessanti minn dak il-programm. 568 00:22:48,295 --> 00:22:49,920 569 00:22:49,920 --> 00:22:52,974 Imma dak li dan il-ħin kien tmur fuq taħt il-barnuża? 570 00:22:52,974 --> 00:22:55,890 Ukoll, fuq il-naħa tax-xellug ġenb huwa string, li hija xi tip ta 'varjabbli, 571 00:22:55,890 --> 00:22:56,785 u huwa msejjaħ s. 572 00:22:56,785 --> 00:23:00,019 So I taf li dan qed tuża memorja, jew RAM, fil-kompjuter tiegħi b'xi. 573 00:23:00,019 --> 00:23:02,060 So I m ser astratt jiġbed li bħala kwadru. 574 00:23:02,060 --> 00:23:04,820 32 bits, jirriżulta, iżda aktar fuq li fil-futur. 575 00:23:04,820 --> 00:23:06,410 U mbagħad, x'inhu għaddej hawn? 576 00:23:06,410 --> 00:23:08,700 >> Well, GetString ovvjament gets string mill-utent. 577 00:23:08,700 --> 00:23:11,360 U GetString ltqajna Zamyla jew Gabe jew Daven. 578 00:23:11,360 --> 00:23:14,640 Mela ejja jagħżlu l-ewwel ta 'dawk, li kien Daven. 579 00:23:14,640 --> 00:23:19,174 Allura effettiv, liema GetString ltqajna me f'dik ewwel każ kien-D a-vs-e-n. 580 00:23:19,174 --> 00:23:22,690 581 00:23:22,690 --> 00:23:25,045 U mbagħad, x'iktar għamilt it tagħti me segretament? 582 00:23:25,045 --> 00:23:25,920 UDJENZA: [inaudible] 583 00:23:25,920 --> 00:23:28,720 DAVID J. Malan: Yeah, l / 0 jew null karattru. 584 00:23:28,720 --> 00:23:30,550 Għalhekk effettivament tatni string. 585 00:23:30,550 --> 00:23:34,550 Iżda aħna diġà jafu minn qabel jistenna li string huwa biss firxa 586 00:23:34,550 --> 00:23:37,895 ta 'karattri, u huwa mitmum minn dan il-karattru sentinella speċjali, / 0. 587 00:23:37,895 --> 00:23:39,220 588 00:23:39,220 --> 00:23:42,310 >> Imma jekk dan huwa minnu u dan huwa kwadru, 589 00:23:42,310 --> 00:23:44,160 dan huwa b'mod ċar rettangolu ħafna akbar. 590 00:23:44,160 --> 00:23:46,830 U fil-fatt, dan huwa, I jsostnu, biss 32 bits. 591 00:23:46,830 --> 00:23:49,500 U dan huwa b'mod ċar aktar minn 32 bits, għaliex dan huwa probabbilment 592 00:23:49,500 --> 00:23:51,583 tmienja plus tmienja plus tmienja plus tmienja plus tmienja, 593 00:23:51,583 --> 00:23:53,320 biss minħabba bytes fil ASCII. 594 00:23:53,320 --> 00:23:57,030 Kif l-Heck aħna se tajbin Daven fis din il-kaxxa ftit hawn? 595 00:23:57,030 --> 00:23:59,880 >> Ukoll, dak li huwa GetString fatt jagħmlu? 596 00:23:59,880 --> 00:24:03,680 Ukoll, dan grid hawn tirrappreżenta memorja tal-kompjuter tiegħi jew RAM. 597 00:24:03,680 --> 00:24:07,564 Mela ejja arbitrarju ngħid li jekk kull wieħed minn dawn jirrappreżenta byte, 598 00:24:07,564 --> 00:24:09,730 allura nistgħu naħsbu ta 'kull byte bħala li għandhom l-indirizz, 599 00:24:09,730 --> 00:24:13,830 bħal 33 Oxford Street, jew 34 Oxford Street, jew 35 Oxford Street. 600 00:24:13,830 --> 00:24:16,700 >> Hekk biss bħal djar ikollhom indirizzi u l-bini jkollhom indirizzi, 601 00:24:16,700 --> 00:24:19,810 so do bytes individwali ta ' memorja jkollhom indirizzi jew numri 602 00:24:19,810 --> 00:24:21,042 li jidentifika unikament minnhom. 603 00:24:21,042 --> 00:24:22,000 Issa, dan huwa arbitrarju. 604 00:24:22,000 --> 00:24:25,370 Iżda biex jżommha sempliċi, jien ser użu hexadecimal biss b'konvenzjoni, 605 00:24:25,370 --> 00:24:28,200 iżda l-0x mezzi xejn oħra minn "dan huwa hexadecimal." 606 00:24:28,200 --> 00:24:31,030 u jien ser jsostnu li l- "D" jispiċċa fil Byte Wieħed fil-memorja. 607 00:24:31,030 --> 00:24:34,210 >> I ltqajna xejn għaddejjin fil memorja, hekk Daven ltqajna l-ewwel post 608 00:24:34,210 --> 00:24:35,509 fil Byte One. 609 00:24:35,509 --> 00:24:36,800 Dan, imbagħad, se tkun 0x2. 610 00:24:36,800 --> 00:24:37,831 611 00:24:37,831 --> 00:24:38,705 Dan se 0x3. 612 00:24:38,705 --> 00:24:39,840 613 00:24:39,840 --> 00:24:41,800 Dan se jkun 0x4. 614 00:24:41,800 --> 00:24:43,025 Dan se 0x5. 615 00:24:43,025 --> 00:24:44,025 Dan se jkun 0x6. 616 00:24:44,025 --> 00:24:45,560 617 00:24:45,560 --> 00:24:48,290 >> Imma ladarba inti tibda taħseb dwar dak Nagħmlu l-kompjuter 618 00:24:48,290 --> 00:24:50,710 taħt il-barnuża, inti tista 'tibda biex jiddeduċu 619 00:24:50,710 --> 00:24:54,960 kif inti, xi snin ilu, kieku implimentaw C innifsu. 620 00:24:54,960 --> 00:24:58,360 X'inhu GetString probabbilment returning-- minħabba li 621 00:24:58,360 --> 00:25:00,946 iħoss bhalu mhuwiex jirritornaw Daven, per se, 622 00:25:00,946 --> 00:25:03,320 għaliex hu żgur mhux se li jitwaħħal f'dan box-- ftit 623 00:25:03,320 --> 00:25:05,090 Allura x'inhi GetString probabbilment jirritorna? 624 00:25:05,090 --> 00:25:07,958 625 00:25:07,958 --> 00:25:08,920 >> UDJENZA: [inaudible] 626 00:25:08,920 --> 00:25:10,540 >> DAVID J. Malan: Il-lokazzjoni tal Daven. 627 00:25:10,540 --> 00:25:12,770 U huwa qed tagħmel dan qatt peress One Week. 628 00:25:12,770 --> 00:25:16,150 Dak GetString huwa verament jirritornaw mhix string, per se. 629 00:25:16,150 --> 00:25:17,780 Din kienet waħda mir-jinsab ftit abjad. 630 00:25:17,780 --> 00:25:22,520 Huwa jirritorna l-indirizz tal- string fil-memorja, l-indirizz uniku. 631 00:25:22,520 --> 00:25:24,820 Daven jgħix fi 33 Oxford Street. 632 00:25:24,820 --> 00:25:29,310 Iżda aktar konċiż, Gavin jgħix fil 0x1, Indirizz Numru Wieħed. 633 00:25:29,310 --> 00:25:32,280 >> Allura dak gets tpoġġi f'dan kaxxa ftit imbagħad, tkun ċara, 634 00:25:32,280 --> 00:25:35,930 huwa biss l-indirizz ta 'dak string. 635 00:25:35,930 --> 00:25:38,110 Allura dan il-ħin, dan ilu għaddej. 636 00:25:38,110 --> 00:25:41,650 Imma dak li din jagħti x'wieħed jifhem li issa hija li jekk kollox i għandha 637 00:25:41,650 --> 00:25:44,710 huwa numru ġewwa ta 'dan, li l- biex int tieqaf, l-programmer, 638 00:25:44,710 --> 00:25:47,970 milli jpoġġu kull numru fil kwalunkwe varjabbli u biss jaqbeż 639 00:25:47,970 --> 00:25:49,080 għal dak blokki ta 'memorja? 640 00:25:49,080 --> 00:25:51,320 U fil-fatt, aħna ser tara thats theddida ħin li jmiss. 641 00:25:51,320 --> 00:25:53,500 >> Iżda għal issa, dan iħoss insuffiċjenti. 642 00:25:53,500 --> 00:25:55,630 Jekk I say, nikseb me a string, inti tagħti me Daven. 643 00:25:55,630 --> 00:25:57,230 Imma inti ma verament jagħtu me Daven. 644 00:25:57,230 --> 00:25:59,310 Kulma għandek tagħti me huwa l-indirizz Daven tal. 645 00:25:59,310 --> 00:26:04,310 Kif do I imbagħad jaf fiż-żgur fejn Daven jibda u ends-- 646 00:26:04,310 --> 00:26:07,140 l-istorja tal jkollna weird-- fejn Daven jibda u jispiċċa, 647 00:26:07,140 --> 00:26:10,435 u mbagħad, l-li jmiss string fil-memorja jibda? 648 00:26:10,435 --> 00:26:11,520 649 00:26:11,520 --> 00:26:13,620 >> Ukoll, jekk int għoti me-bidu ta 'Daven, 650 00:26:13,620 --> 00:26:17,230 essenzjalment, kif inkun naf fejn it-tmiem ta 'ismu hu? 651 00:26:17,230 --> 00:26:20,550 Dan il-karattru null speċjali, li huwa aktar u aktar importanti issa 652 00:26:20,550 --> 00:26:23,040 jekk kordi taħtha l- hood huma sempliċiment identifikati 653 00:26:23,040 --> 00:26:25,820 unikament mill-post tagħhom fil-memorja. 654 00:26:25,820 --> 00:26:28,130 Allura dan il-ħin, li l- dak li kien għaddej. 655 00:26:28,130 --> 00:26:32,470 >> Allura meta nħarsu issa fil il-kodiċi hawn, jispjegaw 656 00:26:32,470 --> 00:26:35,790 jekk inti l-bug fil-linja 26. 657 00:26:35,790 --> 00:26:39,560 Għaliex hija Zamyla u Zamyla differenti? 658 00:26:39,560 --> 00:26:41,330 Għaliex hija Gabe u Gabe differenti? 659 00:26:41,330 --> 00:26:42,154 Yeah, fid-dahar. 660 00:26:42,154 --> 00:26:43,390 >> UDJENZA: Huma għandhom indirizzi differenti. 661 00:26:43,390 --> 00:26:45,931 >> DAVID J. Malan: Sempliċement minħabba huma għandhom indirizzi differenti. 662 00:26:45,931 --> 00:26:48,820 Għaliex meta inti sejħa GetString darb'oħra, li jiena ser tagħmel malajr hawn, 663 00:26:48,820 --> 00:26:52,870 jekk dan huwa l-tieni linja, spag t, kif għamilt f'dak il-programm, 664 00:26:52,870 --> 00:26:55,030 ugwali sejħa oħra għall GetString. 665 00:26:55,030 --> 00:26:56,370 666 00:26:56,370 --> 00:26:58,670 Il-ħin li jmiss I call GetString, jien ser 667 00:26:58,670 --> 00:27:00,190 biex tikseb blokki differenti ta 'memorja. 668 00:27:00,190 --> 00:27:02,220 >> GetString huwa permess li titlob lill-operattiva 669 00:27:02,220 --> 00:27:03,800 sistema għall-memorja aktar u aktar. 670 00:27:03,800 --> 00:27:07,894 Huwa mhux se jerġa 'jintuża l-istess sitt bytes kull wieħed ħin. 671 00:27:07,894 --> 00:27:09,810 Huwa ser tikseb ġdida blokki ta 'memorja, li 672 00:27:09,810 --> 00:27:12,780 ifisser t hija se tikseb xi valur ta 'hawn fuq. 673 00:27:12,780 --> 00:27:15,380 >> Allura meta I do i ugwali = t, int ma jitqabblu 674 00:27:15,380 --> 00:27:17,880 D kontra dan u A kontra dan u V kontra dan. 675 00:27:17,880 --> 00:27:19,588 Inti jqabbel dan kontra dan, li 676 00:27:19,588 --> 00:27:24,020 franchement huwa useless-- pretty useful-- hija pjuttost inutli, minħabba li verament 677 00:27:24,020 --> 00:27:25,830 jimpurtaha fejn il-kordi huma fil-memorja? 678 00:27:25,830 --> 00:27:26,850 >> U fil-fatt, aħna ma. 679 00:27:26,850 --> 00:27:28,980 U aħna mhux qed tmur biex jibdew partikolarment kura. 680 00:27:28,980 --> 00:27:34,180 Biss sal-punt li jistgħu jinqalgħu bugs u theddid għas-sigurtà jistgħu jinqalgħu rieda 681 00:27:34,180 --> 00:27:36,100 aħna attwalment jibdew għall-kura dwar dan. 682 00:27:36,100 --> 00:27:37,230 Mela ejja tiffissa din il-problema. 683 00:27:37,230 --> 00:27:39,650 Jirriżulta, inti tiffissa lilha super sempliċiment. 684 00:27:39,650 --> 00:27:42,600 >> U ejja fil-fatt, qabel I juru li għal darb'oħra, dak li kieku 685 00:27:42,600 --> 00:27:47,170 you do jekk fi klassi CS50, u inti kellhom jimplimentaw 686 00:27:47,170 --> 00:27:48,600 paragun kontra żewġ kordi. 687 00:27:48,600 --> 00:27:51,440 Inti b'mod ċar ma tistax sempliċement tuża s ugwali = t. 688 00:27:51,440 --> 00:27:54,090 Iżda biss loġikament, kemm kieku inti tqabbel din is-sekwenza 689 00:27:54,090 --> 00:27:56,370 kontra din is-sekwenza jużaw kodiċi C? 690 00:27:56,370 --> 00:27:56,880 Yeah. 691 00:27:56,880 --> 00:27:58,780 >> UDJENZA: Just jagħmlu l- għall loop [inaudible] 692 00:27:58,780 --> 00:28:00,670 693 00:28:00,670 --> 00:28:01,670 DAVID J. Malan: Perfect. 694 00:28:01,670 --> 00:28:02,900 UDJENZA: [inaudible] 695 00:28:02,900 --> 00:28:03,310 DAVID J. Malan: Yeah. 696 00:28:03,310 --> 00:28:05,390 Just jużaw għal loop jew filwaqt loop jew ikun x'ikun. 697 00:28:05,390 --> 00:28:08,710 Iżda biss tapplika l-idea bażika li jekk dan huwa blokki ta 'memorja jew firxa 698 00:28:08,710 --> 00:28:11,590 u dan huwa, jtenni fuq kemm fl-istess ħin. 699 00:28:11,590 --> 00:28:12,960 U biss jqabblu l-ittri. 700 00:28:12,960 --> 00:28:14,260 >> U inti ħadthom ltqajna biex tkun ftit attenti, għaliex inti 701 00:28:14,260 --> 00:28:16,247 ma jridux finger wieħed li jmorru passat l-oħra 702 00:28:16,247 --> 00:28:18,080 għaliex string wieħed huwa itwal mill-oħra. 703 00:28:18,080 --> 00:28:21,380 Allura int tmur jridu sabiex jikkontrolla għal dan il-valur speċjali fl-aħħar, null. 704 00:28:21,380 --> 00:28:24,017 Imma huwa verament, fil- aħħar, sempliċi bħal dik. 705 00:28:24,017 --> 00:28:26,100 U franchement, aħna m'għandekx bżonn biex jivvinta dik ir-rota. 706 00:28:26,100 --> 00:28:27,960 Hawnhekk huwa Version Żewġ. 707 00:28:27,960 --> 00:28:32,910 U dak li jien se ngħid hawnhekk hija li minflok jitqabblu s ugwali = t, 708 00:28:32,910 --> 00:28:38,964 Jien minflok se ngħid, jekk string paragun ta 'virgola s t ugwali = 0. 709 00:28:38,964 --> 00:28:40,130 Issa, dak li huwa string jqabblu? 710 00:28:40,130 --> 00:28:43,046 >> Jirriżulta, huwa funzjoni li tiġi ma C, li l-iskop fil-ħajja 711 00:28:43,046 --> 00:28:44,650 huwa li jitqabblu żewġ kordi. 712 00:28:44,650 --> 00:28:48,300 U ħawwad jqabblu, jekk naqraw tagħha paġna bniedem jew dokumentazzjoni jew CS50 713 00:28:48,300 --> 00:28:50,630 referenza, li se sempliċiment jgħidlek li ħawwad 714 00:28:50,630 --> 00:28:55,730 jqabblu prospetti jew negattivi Numru jew numru pożittiv jew żero, 715 00:28:55,730 --> 00:28:57,660 fejn zero ifisser li qed indaqs. 716 00:28:57,660 --> 00:28:58,570 >> Hekk biss konġettura. 717 00:28:58,570 --> 00:29:00,390 Liema jista jfisser jekk ħawwad prospetti jqabblu 718 00:29:00,390 --> 00:29:02,110 valur negattiv jew il-valur pożittiv? 719 00:29:02,110 --> 00:29:02,785 720 00:29:02,785 --> 00:29:04,285 UDJENZA: Aktar minn jew inqas minn. 721 00:29:04,285 --> 00:29:05,570 DAVID J. Malan: Yeah, akbar minn jew inqas minn. 722 00:29:05,570 --> 00:29:08,640 Mela jekk int riedu biex issolvi kollu mazz ta 'kordi fil dictionary-- 723 00:29:08,640 --> 00:29:12,975 kif aħna se eventwalment tistabbilixxi l-road-- funzjoni perfetta għall-użu potenzjalment, 724 00:29:12,975 --> 00:29:15,850 minħabba li għaddej biex tagħmel dan paragun ta 'kordi għalik, u għid 725 00:29:15,850 --> 00:29:20,060 inti tagħmel jasal quddiem b, jew ma b come qabel alfabetikament. 726 00:29:20,060 --> 00:29:21,490 Nistgħu nagħmlu eżattament dan. 727 00:29:21,490 --> 00:29:23,620 >> U avviż Jien għamilt waħda oħra ħaġa f'dan l-eżempju. 728 00:29:23,620 --> 00:29:26,870 X'iktar nbidel ogħla up f'dan funzjoni ewlenija? 729 00:29:26,870 --> 00:29:28,500 730 00:29:28,500 --> 00:29:29,350 Char *. 731 00:29:29,350 --> 00:29:31,150 U dan huwa dak gidba abjad ieħor. 732 00:29:31,150 --> 00:29:33,750 Dan il-ħin, meta inti stajt ġie kitba string, 733 00:29:33,750 --> 00:29:38,350 aħna ġew segretament riskrittura string bħala char * hekk li clang attwalment 734 00:29:38,350 --> 00:29:39,270 jifhem inti. 735 00:29:39,270 --> 00:29:42,450 >> Fi kliem ieħor, fil CS50.h u kif aħna ser eventwalment tara, 736 00:29:42,450 --> 00:29:45,950 għamilna sinonimu imsejjaħ string dak l-istess ħaġa bħat char *. 737 00:29:45,950 --> 00:29:49,910 U għal issa, biss jafu li l- *, F'dan il-kuntest, għall-inqas, 738 00:29:49,910 --> 00:29:51,286 ifisser-indirizz. 739 00:29:51,286 --> 00:29:52,210 >> L-indirizz ta 'dak? 740 00:29:52,210 --> 00:29:56,390 Ukoll, il-fatt li għidt char *, u mhux int * jew float *, 741 00:29:56,390 --> 00:30:00,820 ifisser li char * hija l-indirizz ta 'char. 742 00:30:00,820 --> 00:30:06,770 Allura din il-kaxxa ftit hawn, aka string, huwa verament ta 'tip char *, 743 00:30:06,770 --> 00:30:10,490 li huwa sempliċiment mezz fancy ta 'tgħid, f'din il-kaxxa se jmorru indirizz. 744 00:30:10,490 --> 00:30:12,430 U dak li ma l-indirizz jirreferu għall? 745 00:30:12,430 --> 00:30:13,780 Apparentement, char. 746 00:30:13,780 --> 00:30:16,410 >> Iżda nistgħu assolutament jkollhom int * u affarijiet oħra. 747 00:30:16,410 --> 00:30:20,790 Iżda għal issa, char * huwa verament l-aktar sempliċi u waħda ta 'interess. 748 00:30:20,790 --> 00:30:23,310 Allura din il-problema li qed jiġri jogħlew, għalkemm, għal darb'oħra. 749 00:30:23,310 --> 00:30:24,830 >> Ejja ngħidu I jiftħu dan il-programm. 750 00:30:24,830 --> 00:30:27,670 Ejja ara jekk issa nistgħu jbassru x'hemm ħażin ma 'dan il-kodiċi. 751 00:30:27,670 --> 00:30:31,140 Allura f'dan il-programm, kopja-0, jien se jmorru 'l quddiem u għal darb'oħra sejħa 752 00:30:31,140 --> 00:30:34,190 GetString u jaħżnu l-valur fl-i. 753 00:30:34,190 --> 00:30:38,800 >> U mbagħad, għaliex jien tagħmel dan, biss bħala tfakkira minn ġimgħat passat? 754 00:30:38,800 --> 00:30:40,960 Aħna ma jgħidu li GetString kultant prospetti null. 755 00:30:40,960 --> 00:30:42,793 Xi jfisser jekk GetString prospetti null? 756 00:30:42,793 --> 00:30:45,040 757 00:30:45,040 --> 00:30:46,034 Xi ħaġa li marret ħażin. 758 00:30:46,034 --> 00:30:48,950 Huwa probabbilment tfisser il-sekwenza huwa wisq big, out tal-kompjuter ta 'memorja. 759 00:30:48,950 --> 00:30:51,724 Dan jiġri super, super, super rarament, iżda jista 'jiġri. 760 00:30:51,724 --> 00:30:53,890 Aħna rridu li jikkontrolla għal dan, u li kollox li aħna qed tagħmel. 761 00:30:53,890 --> 00:30:57,910 >> Għaliex aħna ser tara issa, jekk inti ma tibda iċċekkjar abitwalment għal affarijiet 762 00:30:57,910 --> 00:31:00,870 bħal null, inti tista attwalment jibdew imorru 763 00:31:00,870 --> 00:31:03,106 indirizzi fil-memorja li huma invalidi. 764 00:31:03,106 --> 00:31:05,980 U int ser tibda inducing aktar u aktar difetti segmentazzjoni. 765 00:31:05,980 --> 00:31:08,360 Jew fi Mac jew PC, just jikkawżaw kompjuter li hang 766 00:31:08,360 --> 00:31:10,340 jew programm 'ffriżar, potenzjalment. 767 00:31:10,340 --> 00:31:14,930 >> Allura issa, I talba f'kopja-0.c, li jien vais kopja dawn kordi permezz 768 00:31:14,930 --> 00:31:15,685 tal-linja 28. 769 00:31:15,685 --> 00:31:16,850 770 00:31:16,850 --> 00:31:18,750 U mbagħad, jien ser li titlob fil-qiegħ 771 00:31:18,750 --> 00:31:21,430 hawnhekk li jien ser jbiddel wieħed minnhom. 772 00:31:21,430 --> 00:31:22,330 >> Allura avviż dan. 773 00:31:22,330 --> 00:31:24,370 Jien ssejjaħ strlen tagħna ħabib antik. 774 00:31:24,370 --> 00:31:28,960 U biss jispjegaw bl-Ingliż liema din il-linja 34 qed tagħmel? 775 00:31:28,960 --> 00:31:32,480 X'tagħmel t bracket 0 jirrappreżentaw fuq ix-xellug. 776 00:31:32,480 --> 00:31:32,980 Yeah. 777 00:31:32,980 --> 00:31:34,339 >> UDJENZA: L-ewwel karattru ta 't? 778 00:31:34,339 --> 00:31:35,880 DAVID J. Malan: L-ewwel karattru ta 't. 779 00:31:35,880 --> 00:31:36,379 Li dan. 780 00:31:36,379 --> 00:31:40,024 Ewwel karattru ta 't, nixtieq li jassenja l-verżjoni uppercase 781 00:31:40,024 --> 00:31:41,190 ta 'l-ewwel karattru f't. 782 00:31:41,190 --> 00:31:43,200 Allura dan huwa kapitalizzazzjoni l-ewwel ittra. 783 00:31:43,200 --> 00:31:46,340 U mbagħad, il-ħafna aħħar ħaġa I do f'dan il-programm huwa nitlob hawn 784 00:31:46,340 --> 00:31:50,340 l-oriġinali, i, u hawnhekk l-kopja, t. 785 00:31:50,340 --> 00:31:54,610 >> Iżda bbażata fuq l-istorja aħna biss qal dwar liema kordi verament huma, 786 00:31:54,610 --> 00:31:57,520 dak li hu linja 28 verament tagħmel, u dak li huwa 787 00:31:57,520 --> 00:31:59,405 l-bug jirriżultaw għaddej li tkun fuq l-iskrin? 788 00:31:59,405 --> 00:32:01,300 789 00:32:01,300 --> 00:32:03,500 >> Allura l-ewwel, l-ewwel domanda, 28. 790 00:32:03,500 --> 00:32:09,040 X'inhu = string t i verament tagħmel? 791 00:32:09,040 --> 00:32:16,430 Jekk għandna fuq il-naħa tax-xellug ġenb hawn = string t s; 792 00:32:16,430 --> 00:32:19,400 li tagħti me kaxxa waħda hawn u kaxxa waħda hawn. 793 00:32:19,400 --> 00:32:25,530 U jissoponi dan l-indirizz huwa 0x, ejja ngħidu, 50 dan iż-żmien, b'mod arbitrarju. 794 00:32:25,530 --> 00:32:28,847 X'jagħmel = string t s do taħt il-barnuża? 795 00:32:28,847 --> 00:32:30,340 >> UDJENZA: [inaudible] 796 00:32:30,340 --> 00:32:34,100 >> DAVID J. Malan: Taħżen l-memorja jindirizzaw hemmhekk, sabiex 0x50 tmur hemmhekk. 797 00:32:34,100 --> 00:32:37,980 Allura jekk issa, I mur l-ewwel karattru f't u uppercase dan, 798 00:32:37,980 --> 00:32:39,535 dak li jien effettivament jagħmlu biex i? 799 00:32:39,535 --> 00:32:41,300 800 00:32:41,300 --> 00:32:43,450 Ninsab verament tagħmel l-istess ħaġa, id-dritt? 801 00:32:43,450 --> 00:32:47,680 Għaliex jekk 0x50-- Indirizz u biss, I m'għandhomx wisq spazju fuq il-bord hawn, 802 00:32:47,680 --> 00:32:51,750 iżda jassumi li dan huwa 0x50 stabbiliti hawn, x'imkien fil-memorja tal-kompjuter tiegħi. 803 00:32:51,750 --> 00:32:55,825 >> U jien, per eżempju, Gabe fl zghar hawn, bħal dan. 804 00:32:55,825 --> 00:32:57,120 805 00:32:57,120 --> 00:33:01,980 U għidt bracket t 0 gets kapitalizzat. 806 00:33:01,980 --> 00:33:04,860 Ukoll, t parentesi 0 hija l-ewwel ittra f't. 807 00:33:04,860 --> 00:33:07,840 Allura ftit g va jsiru G. big Iżda l-problema 808 00:33:07,840 --> 00:33:09,410 huwa, dak ma s wkoll il-punt li? 809 00:33:09,410 --> 00:33:10,300 >> UDJENZA: L-istess. 810 00:33:10,300 --> 00:33:11,841 >> DAVID J. Malan: L-istess ħaġa eżatt. 811 00:33:11,841 --> 00:33:16,342 Allura spjegazzjoni sempliċi forsi, anki jekk il-sintassi hija ftit stramb. 812 00:33:16,342 --> 00:33:17,050 Mela ejja tagħmel dan. 813 00:33:17,050 --> 00:33:20,210 Make-kopja 0 u mbagħad ./copy-0. 814 00:33:20,210 --> 00:33:21,820 815 00:33:21,820 --> 00:33:24,110 Say xi ħaġa: Gabe. 816 00:33:24,110 --> 00:33:26,760 U sfortunatament, it-tnejn minnhom issa ġew kapitalizzat, 817 00:33:26,760 --> 00:33:29,500 iżda għal dak sottostanti raġuni li aħna qed sempliċiment 818 00:33:29,500 --> 00:33:32,350 issa jittrattaw indirizzi. 819 00:33:32,350 --> 00:33:36,470 >> Allura kif nistgħu jibdew address-- no pun intended-- 820 00:33:36,470 --> 00:33:39,270 kif nistgħu tibda tindirizza din il-problema partikolari? 821 00:33:39,270 --> 00:33:44,400 Ukoll, fil-copy1.c, affarijiet sejrin biex tikseb ftit aktar kumplikata. 822 00:33:44,400 --> 00:33:49,310 Imma nixtieq tippretendi Soluzzjoni kunċettwalment sempliċi. 823 00:33:49,310 --> 00:33:50,852 >> Allura diffiċli biex jiksbu ewwel daqqa t'għajn. 824 00:33:50,852 --> 00:33:53,560 Mhux se tkun faċli għall-ewwel ħin inti tip out, forsi, 825 00:33:53,560 --> 00:33:57,440 iżda jekk il-problema hija li sempliċiment tagħmel = t i biss 826 00:33:57,440 --> 00:33:59,694 kopji-indirizz, liema, ġdid jekk I tista 'pick fuqek, 827 00:33:59,694 --> 00:34:02,110 se tkun is-soluzzjoni għal fatt ikkupjar string? 828 00:34:02,110 --> 00:34:04,906 829 00:34:04,906 --> 00:34:06,770 >> UDJENZA: Aħna ser probabbilment tuża loop darb'oħra. 830 00:34:06,770 --> 00:34:06,890 >> DAVID J. Malan: Yeah. 831 00:34:06,890 --> 00:34:08,390 Allura aħna qed tmur biex bżonn loop darb'oħra. 832 00:34:08,390 --> 00:34:11,800 U għaliex jekk aħna tixtieq li kopja string s fis string ieħor, 833 00:34:11,800 --> 00:34:14,120 aħna probabbilment tixtieq li tagħmel dan karattru mill-karattru. 834 00:34:14,120 --> 00:34:17,199 Iżda l-problema hija, jekk dan huwa oriġinarjament s, 835 00:34:17,199 --> 00:34:22,159 issa għandna bżonn biex tibda espliċitu allokazzjoni memorja għal t. 836 00:34:22,159 --> 00:34:24,320 >> Fi kliem ieħor, ejja tiġbed dan għall-aħħar darba. 837 00:34:24,320 --> 00:34:28,659 Jekk dan huwa string s = GetString. 838 00:34:28,659 --> 00:34:30,956 839 00:34:30,956 --> 00:34:32,455 U ejja tpoġġi dan up here, kif ukoll. 840 00:34:32,455 --> 00:34:36,639 841 00:34:36,639 --> 00:34:37,420 Dan huwa GetString. 842 00:34:37,420 --> 00:34:39,070 843 00:34:39,070 --> 00:34:43,860 U mbagħad, l-istampa għal xi ħaġa bħal dik se tkun bħal qabel, 844 00:34:43,860 --> 00:34:44,360 g-a-b e / 0. 845 00:34:44,360 --> 00:34:47,294 846 00:34:47,294 --> 00:34:48,960 Li jistenna ftit xi ħaġa bħal din. 847 00:34:48,960 --> 00:34:53,650 U s għalhekk, nagħmlu sejħa dan 0x50, u li għaddej biex tkun 51, 52. 848 00:34:53,650 --> 00:34:54,409 >> Allura dan huwa 0x50. 849 00:34:54,409 --> 00:34:55,679 850 00:34:55,679 --> 00:34:59,690 U mbagħad, I do string t. 851 00:34:59,690 --> 00:35:02,450 Fil-memorja, li jinsab biss se tagħti me ftit kwadru bħal dan. 852 00:35:02,450 --> 00:35:04,080 Allura x'inhu l-pass ewlieni issa? 853 00:35:04,080 --> 00:35:09,870 Jekk I tixtieq li kopja s fis t, liema vojt għandna bżonn biex timla hawn? 854 00:35:09,870 --> 00:35:12,050 Jew dak li għandna bżonn li do fuq livell għoli? 855 00:35:12,050 --> 00:35:14,101 856 00:35:14,101 --> 00:35:14,600 Yeah? 857 00:35:14,600 --> 00:35:16,200 858 00:35:16,200 --> 00:35:17,020 Xi ħadd? 859 00:35:17,020 --> 00:35:17,690 Yeah. 860 00:35:17,690 --> 00:35:19,214 >> UDJENZA: Għandna bżonn li [inaudible]. 861 00:35:19,214 --> 00:35:21,380 DAVID J. Malan: Yeah, aħna bżonn timla dan il-vojt. 862 00:35:21,380 --> 00:35:24,340 I ma tista 'kopja u mbagħad kapitalizzazzjoni isem Gabe tal 863 00:35:24,340 --> 00:35:28,120 sal I titlob lill-sistema operattiva għall chunk ieħor ta 'memorja 864 00:35:28,120 --> 00:35:30,640 li l-inqas kemm kbar kif l-oriġinali. 865 00:35:30,640 --> 00:35:32,130 Allura li tħalli us bil-kwistjoni. 866 00:35:32,130 --> 00:35:36,080 >> Kif nista titlob lill-sistema operattiva ma biss għal Pointer ftit sempliċi 867 00:35:36,080 --> 00:35:38,530 kif din tissejjaħ, ta indirizz, l-Pointer ma 868 00:35:38,530 --> 00:35:40,980 għal ftit kaxxa sempliċi bħal din tissejjaħ string? 869 00:35:40,980 --> 00:35:44,200 Kif nista titlob lill-operattiva sistema għal blokki kbar ta 'memorja? 870 00:35:44,200 --> 00:35:48,430 S'issa, stajt biss gotten li back indirettament billi ċċempel GetString. 871 00:35:48,430 --> 00:35:50,740 Allura kif huwa GetString anki jkollna memorja tiegħu? 872 00:35:50,740 --> 00:35:53,430 >> Ukoll, jirriżulta li hemm din il-funzjoni oħra hawn 873 00:35:53,430 --> 00:35:55,160 li aħna issa ser tibda tuża. 874 00:35:55,160 --> 00:35:59,780 Issa, dan jistenna than-- b'mod aktar cryptic u jiena l-unika waħda li tista 'tara it-- 875 00:35:59,780 --> 00:36:03,150 din il-linja jistenna b'mod aktar cryptic allura għandu fl-ewwel daqqa t'għajn. 876 00:36:03,150 --> 00:36:04,650 Imma ejja tease l barra. 877 00:36:04,650 --> 00:36:07,950 >> Fuq in-naħa tax-xellug, I jkollhom char * t. 878 00:36:07,950 --> 00:36:13,280 Allura bl-Ingliż, ejja nibdew biex jifformulaw sentenzi xierqa fil jargon tekniku. 879 00:36:13,280 --> 00:36:19,757 Allura dan huwa allokazzjoni ta ' varjabbli ta 'char tip * t imsejħa. 880 00:36:19,757 --> 00:36:21,090 Issa, dak li verament ma jfisser? 881 00:36:21,090 --> 00:36:23,881 >> Ukoll, dan ifisser, dak li jien ser biex tistabbilixxi dan il-varjabbli imsejħa t? 882 00:36:23,881 --> 00:36:24,780 883 00:36:24,780 --> 00:36:26,402 An-indirizz ta 'char. 884 00:36:26,402 --> 00:36:28,360 Allura li jinsab biss l-aktar sempliċi, aktar mod raġonevoli 885 00:36:28,360 --> 00:36:29,930 jiddeskrivi in-naħa tax-xellug. 886 00:36:29,930 --> 00:36:32,890 Allura li toħloq din il-kaxxa hawn biss. 887 00:36:32,890 --> 00:36:34,760 Allura l-naħa tal-lemin, preżumibbilment, huwa għaddej 888 00:36:34,760 --> 00:36:37,170 li jalloka li akbar blokki ta 'memorja kif? 889 00:36:37,170 --> 00:36:38,340 Mela ejja tease dan apparti. 890 00:36:38,340 --> 00:36:41,131 >> Huwa enormi fl-ewwel daqqa t'għajn, imma x'inhu għaddej ġewwa hawn? 891 00:36:41,131 --> 00:36:43,740 L-ewwel, hemm malloc, li hija apparentement ħabib ġdid tagħna, 892 00:36:43,740 --> 00:36:45,450 "Memorja jalloka." 893 00:36:45,450 --> 00:36:49,560 Allura dan huwa l-argument qed ikunu mgħoddija fis dan, dan huwa argument pretty big. 894 00:36:49,560 --> 00:36:50,970 Mela ejja tease dan apparti. 895 00:36:50,970 --> 00:36:53,410 >> strlen ta 'i, naturalment, jirrappreżenta the-- 896 00:36:53,410 --> 00:36:54,142 897 00:36:54,142 --> 00:36:55,600 UDJENZA: In-numru ta 'karattri. 898 00:36:55,600 --> 00:36:56,710 DAVID J. Malan: Biss il- numru ta 'karattri fit s. 899 00:36:56,710 --> 00:36:59,040 Allura l-tul ta 'i, il-string oriġinali. 900 00:36:59,040 --> 00:37:00,350 Allura-G a-b-e. 901 00:37:00,350 --> 00:37:02,320 Allura huwa probabbilment erba f'dan il-każ. 902 00:37:02,320 --> 00:37:05,485 Why am I tagħmel +1 wara ssejjaħ strlen ta s? 903 00:37:05,485 --> 00:37:06,360 UDJENZA: [inaudible] 904 00:37:06,360 --> 00:37:07,590 DAVID J. Malan: Għal dak karattru speċjali null. 905 00:37:07,590 --> 00:37:11,260 Jekk inti titlob lili x'inhu l-tul ta ' Isem Gabe, jiena vais ngħid erbgħa. 906 00:37:11,260 --> 00:37:14,480 Taht il-barnuża, għalkemm, I bżonn li ħames byte għall-karattru null. 907 00:37:14,480 --> 00:37:16,100 Allura hu għalhekk li jien tagħmel l +1. 908 00:37:16,100 --> 00:37:21,730 >> Issa biss fil-każ li inti taħdem dan programm fuq il-kompjuter minbarra, say, 909 00:37:21,730 --> 00:37:24,610 l-appliance CS50, fejn id-daqs ta 'char 910 00:37:24,610 --> 00:37:26,350 jista 'jkun differenti minn computer-- tiegħi stess 911 00:37:26,350 --> 00:37:30,590 Jirriżulta li nista 'sejħa dan sizeof operatur, staqsi il-kompjuter, 912 00:37:30,590 --> 00:37:32,870 x'inhu d-daqs ta ' char fuq dan il-kompjuter? 913 00:37:32,870 --> 00:37:37,400 >> U billi timmultiplika ħamsa f'dan pereżempju bl-daqs ta 'char, li 914 00:37:37,400 --> 00:37:40,440 fuq kompjuters aktar se jkun biss wieħed, malloc 915 00:37:40,440 --> 00:37:44,830 se talloka għalija dan big blokki ta 'memorja fuq hawn fuq il-lemin. 916 00:37:44,830 --> 00:37:47,140 U li għaddej biex return-- huwa function-- hekk huwa 917 00:37:47,140 --> 00:37:48,265 ser jirritornaw għall lili dak? 918 00:37:48,265 --> 00:37:50,914 919 00:37:50,914 --> 00:37:51,830 UDJENZA: L-indirizz? 920 00:37:51,830 --> 00:37:53,709 DAVID J. Malan: L-indirizz ta 'dak? 921 00:37:53,709 --> 00:37:55,250 UDJENZA: Tal il-memorja huwa allokat? 922 00:37:55,250 --> 00:37:56,450 DAVID J. Malan: Tal il memorja huwa allokat. 923 00:37:56,450 --> 00:37:59,189 So I jkollhom l-ebda idea, franchement, fejn dan ikun ser jispiċċaw. 924 00:37:59,189 --> 00:38:01,480 Jien ser tipproponi li li għaddej biex jispiċċaw fil 0x88. 925 00:38:01,480 --> 00:38:02,770 926 00:38:02,770 --> 00:38:06,009 Kompletament arbitrarja, iżda x'imkien ieħor għajr 0x50, 927 00:38:06,009 --> 00:38:08,800 għaliex is-sistema operattiva, liema Windows u Mac OS tagħmel għalija, huwa 928 00:38:08,800 --> 00:38:11,230 kun żgur li huwa jagħti me biċċiet differenti ta 'RAM. 929 00:38:11,230 --> 00:38:14,210 >> Allura dan huwa l-valur, fejn dan blokki ta 'memorja tista' tispiċċa. 930 00:38:14,210 --> 00:38:16,060 Allura dan huwa dak jispiċċa fil hawn, 0x88. 931 00:38:16,060 --> 00:38:17,480 932 00:38:17,480 --> 00:38:21,570 Allura issa b'mod ċar, I jistgħu jifhmu li dan mhuwiex l-istess bħal dan, 933 00:38:21,570 --> 00:38:23,960 għaliex qed tipponta lejn biċċiet differenti ta 'memorja. 934 00:38:23,960 --> 00:38:29,980 Mela jekk jien issa fil-fatt tixtieq li kopja din fil, ejja do soluzzjoni proposta tiegħek. 935 00:38:29,980 --> 00:38:36,870 >> Ejja biss jmorru, joħolqu għal loop, u jagħmlu bracket t i gets bracket s i. 936 00:38:36,870 --> 00:38:39,760 Minħabba issa I jistgħu jużaw dan-array like notazzjoni, 937 00:38:39,760 --> 00:38:43,390 għaliex anki jekk malloc ħafna ġeneriku jalloka me memorja, 938 00:38:43,390 --> 00:38:45,290 memorja huwa bytes biss kontigwi. 939 00:38:45,290 --> 00:38:47,240 Byte, byte, byte, lura lura biex lura. 940 00:38:47,240 --> 00:38:50,030 >> I jista 'żgur bħala programmer titratta dan bħala firxa, li 941 00:38:50,030 --> 00:38:55,090 tfisser I jistgħu jużaw dan finalment familjari notazzjoni tal biss xi parentesi kwadri. 942 00:38:55,090 --> 00:38:56,462 943 00:38:56,462 --> 00:39:00,020 >> So let me nieqaf hemm, għaliex dan huwa ħafna kollha f'daqqa, anke 944 00:39:00,020 --> 00:39:03,530 għalkemm l-idea bażika li terġa hija li string, dan il-ħin, 945 00:39:03,530 --> 00:39:05,550 mhix tip ta 'dejta ġdid per se. 946 00:39:05,550 --> 00:39:10,150 Huwa biss hekk imsejħa pointer, indirizz ta 'karattru, 947 00:39:10,150 --> 00:39:12,650 li ifisser biss huwa numru li permezz tal-konvenzjoni tal-bniedem 948 00:39:12,650 --> 00:39:15,350 għandna t-tendenza li tikteb bħala 0x xi ħaġa. 949 00:39:15,350 --> 00:39:18,590 >> Iżda huwa biss numru, bħal 33 Oxford Street, 950 00:39:18,590 --> 00:39:20,530 li jiġri li jkun l- Indirizz bini CS tal. 951 00:39:20,530 --> 00:39:22,000 952 00:39:22,000 --> 00:39:23,545 Kwalunkwe mistoqsijiet dwar dawn id-dettalji? 953 00:39:23,545 --> 00:39:24,790 954 00:39:24,790 --> 00:39:25,289 Yeah? 955 00:39:25,289 --> 00:39:28,530 >> UDJENZA: Għalfejn nagħmlu check għal t ugwali għal nulla? 956 00:39:28,530 --> 00:39:30,740 >> DAVID J. Malan: Għalfejn nagħmlu iċċekkja għal t ugwali għal nulla? 957 00:39:30,740 --> 00:39:33,250 Jekk naqraw il-documentation-- question-- kbira għall malloc, 958 00:39:33,250 --> 00:39:37,020 li għaddej biex ngħid fil-istampar multa, kultant malloc tista 'ritorn null, 959 00:39:37,020 --> 00:39:38,080 bħad GetString. 960 00:39:38,080 --> 00:39:41,820 U fil-fatt, GetString prospetti nulli jekk, imbagħad, malloc prospetti nulli, 961 00:39:41,820 --> 00:39:43,130 minħabba GetString użi malloc. 962 00:39:43,130 --> 00:39:46,400 >> U li jista 'jiġri jekk il-OS, Mac OS, Windows, ikun x'ikun, huwa sempliċiment 963 00:39:46,400 --> 00:39:48,130 out ta 'memorja għalik. 964 00:39:48,130 --> 00:39:49,820 Allura dan huwa dak li ġara hemmhekk. 965 00:39:49,820 --> 00:39:52,910 >> U let me jiżvelaw ħaġa waħda oħra li jistgħu biss blow moħħok 966 00:39:52,910 --> 00:39:55,100 jew kompletament tkun wisq fuq il-linja. 967 00:39:55,100 --> 00:39:59,770 Imma let me pull up il- istess għall loop għall-ikkupjar, 968 00:39:59,770 --> 00:40:05,480 li mument ilu, recall kien dan. bracket t i gets bracket s i. 969 00:40:05,480 --> 00:40:06,740 >> Nizza u faċli għall-utent. 970 00:40:06,740 --> 00:40:09,330 Iħoss bħal Week Żewġ darb'oħra. 971 00:40:09,330 --> 00:40:14,920 Iżda din il-verżjoni attwalment jista 'jkun miktuba mill-ġdid bħala dan, li tidher cryptic. 972 00:40:14,920 --> 00:40:18,280 Huwa ta 'teknika msejħa pointer aritmetika, indirizz aritmetika. 973 00:40:18,280 --> 00:40:19,600 Iżda għaliex ma dan ix-xogħol? 974 00:40:19,600 --> 00:40:22,220 >> Issa annoyingly, il- awturi ta 'C iddeċidew li jużaw 975 00:40:22,220 --> 00:40:25,070 is-simbolu * għal skopijiet differenti. 976 00:40:25,070 --> 00:40:29,020 Rajna hija użat darba diġà, char *, li tfisser "tagħti me a varjabbli 977 00:40:29,020 --> 00:40:31,210 li għaddej biex fihom l-indirizz ta 'char. " 978 00:40:31,210 --> 00:40:33,990 * Allura char f'dak il-kuntest ifisser "tagħti me a varjabbli." 979 00:40:33,990 --> 00:40:40,050 >> Sfortunatament, jekk inti tuża l-* mingħajr kelma quddiem ta 'dan, bħal char, 980 00:40:40,050 --> 00:40:41,905 huwa issa msejjaħ l- operatur dereference. 981 00:40:41,905 --> 00:40:43,530 U aħna ser tara aktar ta 'dan qabel twil. 982 00:40:43,530 --> 00:40:44,930 Iżda dan ifisser biss "jmorru hemm." 983 00:40:44,930 --> 00:40:49,070 Huwa simili qal, jekk xi ħadd mogħtija lili fuq biċċa karta "33 Oxford Street," 984 00:40:49,070 --> 00:40:53,830 jekk I do "* Oxford Street 33," dan ifisser "Go fl-triq għall-bini CS." 985 00:40:53,830 --> 00:40:57,220 >> Allura * ifisser biss jmorru hemm jekk hemm l-ebda kelma quddiem ta 'dan. 986 00:40:57,220 --> 00:40:59,100 Allura dak li huwa t, li jkun ċar? 987 00:40:59,100 --> 00:41:03,250 t huwa l-indirizz tal-blokki ta ' memorja li ngħatat lura lili. 988 00:41:03,250 --> 00:41:06,650 i huwa l-indirizz ta 'dak li, biex tkun ċara, fl-eżempju aħna kont qed tiddiskuti, 989 00:41:06,650 --> 00:41:07,500 tal Gabe zghar? 990 00:41:07,500 --> 00:41:08,990 991 00:41:08,990 --> 00:41:10,005 i huwa l-indirizz of-- 992 00:41:10,005 --> 00:41:11,585 993 00:41:11,585 --> 00:41:12,460 UDJENZA: L-sekwenza. 994 00:41:12,460 --> 00:41:14,126 DAVID J. Malan: Of isem oriġinali Gabe tal. 995 00:41:14,126 --> 00:41:16,660 Allura huwa l-indirizz ta ' din blokki ta 'memorja. 996 00:41:16,660 --> 00:41:22,220 Mela jekk jien ngħid t + I-- i, avviż, huwa biss ħabib antik tagħna. 997 00:41:22,220 --> 00:41:24,770 Huwa biss varjabbli indiċi thats mtennija minn żero fuq up 998 00:41:24,770 --> 00:41:26,960 għat-tul tas-sekwenza s. 999 00:41:26,960 --> 00:41:30,367 Allura li għaddej biex tkun żero, allura wieħed, imbagħad tnejn, imbagħad tlieta, imbagħad erba. 1000 00:41:30,367 --> 00:41:33,200 Mela ejja jimmuntaw dawn ġdida Biċċiet puzzle scratch simili, jekk inti se, 1001 00:41:33,200 --> 00:41:36,140 anki jekk, għal darb'oħra, il-sintassi huwa ferm aktar arcane minn Scratch. 1002 00:41:36,140 --> 00:41:39,522 Allura t huwa indirizz + i huwa ser jagħti me 1003 00:41:39,522 --> 00:41:42,480 numru, minħabba li dawn huma kollha numri li aħna kont qed tpinġija bħala hex. 1004 00:41:42,480 --> 00:41:43,560 Iżda dawn qed biss numri. 1005 00:41:43,560 --> 00:41:49,960 >> Mela jekk l-indirizz ta 't għidna kien 0x88, x'hemm 0x88 plus żero. 1006 00:41:49,960 --> 00:41:51,564 1007 00:41:51,564 --> 00:41:53,980 Anke jekk int mhux komdu ma hex għadhom, tieħu raden. 1008 00:41:53,980 --> 00:41:54,410 >> UDJENZA: L-oriġinal. 1009 00:41:54,410 --> 00:41:55,850 >> DAVID J. Malan: Still 0x88. 1010 00:41:55,850 --> 00:41:58,910 Allura dak li ma * 0x88 jfisser? 1011 00:41:58,910 --> 00:42:02,670 Dan ifisser, "jmorru hemm" li tfisser effettivament, "iqiegħed subgħajh tiegħek hawn." 1012 00:42:02,670 --> 00:42:06,930 U issa fuq in-naħa tal-lemin tal din l-espressjoni, * u mbagħad fl parens, 1013 00:42:06,930 --> 00:42:11,586 s + i jfisser i, li hija l- jindirizzaw up here tal-g ftit. 1014 00:42:11,586 --> 00:42:16,220 i + 0 huwa, ovvjament, i, ikun x'ikun i huwa. 1015 00:42:16,220 --> 00:42:21,230 >> Allura issa, huwa * i, li bħad * 33 Oxford Street ifisser mur l-indirizz 1016 00:42:21,230 --> 00:42:22,010 s. 1017 00:42:22,010 --> 00:42:24,170 Allura hawnhekk dan saba, lemin. 1018 00:42:24,170 --> 00:42:26,050 Allura dak am I se kopja fil dak? 1019 00:42:26,050 --> 00:42:30,260 Il-ħaġa dwar id-dritt, li hija Gabe, ftit g hawn, fis hawn. 1020 00:42:30,260 --> 00:42:32,750 >> U għalhekk l-effett ta 'dik ewwel iterazzjoni tal-linja, 1021 00:42:32,750 --> 00:42:36,200 kif inti propost, anki jekk jidher crazy aktar ikkumplikat minn kull ħaġa 1022 00:42:36,200 --> 00:42:42,110 konna rajna qabel, huwa sempliċiment tgħid mur hawn u kopja dan il-karattru hawnhekk. 1023 00:42:42,110 --> 00:42:44,700 Huwa giving you mappa biex żewġ postijiet. 1024 00:42:44,700 --> 00:42:46,130 >> U aħna ser tara ħafna aktar ta 'dan. 1025 00:42:46,130 --> 00:42:50,600 Iżda għal issa, it-tama hi biss li jintroduċu xi wħud minn dawn l-ideat bażiċi. 1026 00:42:50,600 --> 00:42:53,550 U fil-fatt, ejja nħarsu lejn programm finali wieħed hawn, 1027 00:42:53,550 --> 00:42:57,480 u allura l-claymation imwiegħed, li se tagħmel dak kollu dritt. 1028 00:42:57,480 --> 00:42:57,980 Kull dritt. 1029 00:42:57,980 --> 00:43:01,680 So let me tiftaħ up-- hemm immorru. 1030 00:43:01,680 --> 00:43:02,850 1031 00:43:02,850 --> 00:43:05,440 Mela ejja me-- aħna ser terga 'lura li din l-istampa qabel twil. 1032 00:43:05,440 --> 00:43:08,360 Let me jiftħu dan l-eżempju finali hawn. 1033 00:43:08,360 --> 00:43:09,440 1034 00:43:09,440 --> 00:43:12,710 >> Allura hawnhekk huwa super, super programm li accomplishes 1035 00:43:12,710 --> 00:43:15,050 xejn fil-ħajja li ma l-segwenti. 1036 00:43:15,050 --> 00:43:18,740 Hija l-ewwel jiddikjara żewġ varjabbli, x u y, li mhumiex numri dan iż-żmien, 1037 00:43:18,740 --> 00:43:19,240 per se. 1038 00:43:19,240 --> 00:43:20,448 Huma qed mhux interi, per se. 1039 00:43:20,448 --> 00:43:22,899 Huma apparentament int *. 1040 00:43:22,899 --> 00:43:25,690 Allura biss xi ħadd, xi jfisser jekk tip ta 'data tiegħek, varjabbli tiegħek, 1041 00:43:25,690 --> 00:43:26,860 huwa ta 'int tip * star? 1042 00:43:26,860 --> 00:43:30,240 Dik hija l-indirizz ta 'int. 1043 00:43:30,240 --> 00:43:31,990 >> So I stajt ebda idea fejn hu għadu. 1044 00:43:31,990 --> 00:43:35,150 Dan ifisser biss "mressaq, eventwalment, l-indirizz ta 'int hawn. " 1045 00:43:35,150 --> 00:43:38,340 0x50, 0x88, kull fejn hija fil- memorja, l-indirizz huwa għaddej hemmhekk. 1046 00:43:38,340 --> 00:43:40,200 U dan huwa dak y hija ser ikunu, kif ukoll. 1047 00:43:40,200 --> 00:43:44,920 >> Jekk I issa ngħid x = malloc (sizeof (int)), dan huwa mod fancy ta 'tgħid, 1048 00:43:44,920 --> 00:43:49,000 ħej sistema operattiva, permezz malloc, tagħti me memorja biżżejjed għall-daqs 1049 00:43:49,000 --> 00:43:52,370 ta 'int, li huwa probabbilment ser ikunu ta '32 bits jew erba bytes. 1050 00:43:52,370 --> 00:43:53,680 >> Allura dak li ma malloc ritorn? 1051 00:43:53,680 --> 00:43:55,250 Malloc jirritorna indirizz. 1052 00:43:55,250 --> 00:43:57,020 Allura x'inhu għaddej biex nikseb maħżuna fil x? 1053 00:43:57,020 --> 00:44:00,600 L-indirizz tal-blokki ta ' memorja, l-erba 'bytes, li malloc 1054 00:44:00,600 --> 00:44:03,360 biss sabu għalija billi tistaqsi is-sistema operattiva. 1055 00:44:03,360 --> 00:44:08,240 >> Issa sadanittant, linja erbgħa hawn, il-* x = 42. 1056 00:44:08,240 --> 00:44:09,990 Just biex tkun ċara, x'inhu għaddej hemm isfel? 1057 00:44:09,990 --> 00:44:11,530 Fuq in-naħa tax-xellug, * x. 1058 00:44:11,530 --> 00:44:13,610 li simili * 33 Oxford Street. 1059 00:44:13,610 --> 00:44:15,523 Allura * x ifisser liema? 1060 00:44:15,523 --> 00:44:16,450 >> UDJENZA: Mur. 1061 00:44:16,450 --> 00:44:17,908 >> DAVID J. Malan: Mur f'dak l-indirizz. 1062 00:44:17,908 --> 00:44:20,466 Kull fejn dik blokki ta ' memorja huwa, mur għaliha. 1063 00:44:20,466 --> 00:44:21,979 U tpoġġi dak hemm, ovvjament? 1064 00:44:21,979 --> 00:44:22,520 UDJENZA: 42. 1065 00:44:22,520 --> 00:44:23,580 DAVID J. Malan: 42. 1066 00:44:23,580 --> 00:44:25,650 Kull dritt, y *, l-istess idea. 1067 00:44:25,650 --> 00:44:26,860 Mur fl-indirizz y. 1068 00:44:26,860 --> 00:44:31,740 Poġġi n-numru 13 hemmhekk, imma dak li hu y fil-mument? 1069 00:44:31,740 --> 00:44:33,172 1070 00:44:33,172 --> 00:44:34,630 UDJENZA: M'hemm l-ebda memorja għall y. 1071 00:44:34,630 --> 00:44:35,710 DAVID J. Malan: M'hemm l-ebda memorja għall y. 1072 00:44:35,710 --> 00:44:38,215 Allura dak li ma y probabbilment fihom, kif aħna kont qed tgħid? 1073 00:44:38,215 --> 00:44:38,520 >> UDJENZA: Żibel. 1074 00:44:38,520 --> 00:44:39,480 >> DAVID J. Malan: Xi valur żibel. 1075 00:44:39,480 --> 00:44:41,320 Issa, il-valur żibel għadu numru. 1076 00:44:41,320 --> 00:44:43,160 Hija xorta jistgħu jiġu interpretati indirizz. 1077 00:44:43,160 --> 00:44:45,160 Huwa bħallikieku xi ħadd mħarrbxa xi ħaġa isfel, 1078 00:44:45,160 --> 00:44:48,002 u I interpretawh b'mod inkorrett fis-sens xi bini fl-triq. 1079 00:44:48,002 --> 00:44:50,460 U jekk inti biss tipprova li jmorru fis xi bini inti ma proprji, 1080 00:44:50,460 --> 00:44:53,710 jew xi blokki ta 'memorja int ma Kien mogħti, affarijiet ħżiena jista 'jiġri. 1081 00:44:53,710 --> 00:44:57,740 Computer jista crash, jew xi oħra imġieba mhux determinat jista 'jiġri. 1082 00:44:57,740 --> 00:45:01,310 >> Allura l-intro, imbagħad, li Binky hija din. 1083 00:45:01,310 --> 00:45:04,290 I still remember, 20 xi snin bil-fard aktar tard, 1084 00:45:04,290 --> 00:45:07,200 fejn I kien meta I finalment mifhum pointers. 1085 00:45:07,200 --> 00:45:09,520 >> Liema jiġifieri, jekk inti leave hawn fi tliet minuti 1086 00:45:09,520 --> 00:45:12,170 u think I ma jifhmu pointers, tirrealizza 1087 00:45:12,170 --> 00:45:14,410 Għandi mfakkar għall-20 snin għall xi raġuni crazy 1088 00:45:14,410 --> 00:45:17,140 meta u għaliex finalment għereq fil, seduta bit-tagħlim tiegħi 1089 00:45:17,140 --> 00:45:19,501 sħabi, Nishat Mehta fil- dahar tal Eliot Dining Hall. 1090 00:45:19,501 --> 00:45:21,250 Issa, stajt mfakkar dan minħabba li dan kien 1091 00:45:21,250 --> 00:45:23,920 waħda mit-temi I, fil partikolari, tħabtu ma. 1092 00:45:23,920 --> 00:45:26,470 U allura, finalment għafast, bħal I DARE jgħidu ħafna ta 'suġġetti 1093 00:45:26,470 --> 00:45:27,460 eventwalment se. 1094 00:45:27,460 --> 00:45:32,590 U issa, biex jagħmlu li jħossu li l- kuntenti u l-aktar konvinċenti, 1095 00:45:32,590 --> 00:45:35,360 ejja tagħti ħarsa finali tagħna aħħar tliet minuti hawn fuq Binky, 1096 00:45:35,360 --> 00:45:37,675 minn ħabib tagħna, Nick Parlante minn Stanford. 1097 00:45:37,675 --> 00:45:38,910 1098 00:45:38,910 --> 00:45:41,580 >> [Daqq ta 'video] 1099 00:45:41,580 --> 00:45:42,750 >> -Hey, Binky. 1100 00:45:42,750 --> 00:45:43,500 Wake up! 1101 00:45:43,500 --> 00:45:45,960 Wasal iż-żmien għall-gost pointer. 1102 00:45:45,960 --> 00:45:47,012 >> Liema-li? 1103 00:45:47,012 --> 00:45:48,723 Tgħallem dwar pointers? 1104 00:45:48,723 --> 00:45:50,580 Oh, Goody! 1105 00:45:50,580 --> 00:45:53,563 >> -Well, Biex tibda, I raden aħna qed ser jeħtieġu koppja pointers. 1106 00:45:53,563 --> 00:45:54,390 >> OK. 1107 00:45:54,390 --> 00:45:57,930 Dan il-kodiċi jalloka żewġ pointers, li jista 'jiġbed l interi. 1108 00:45:57,930 --> 00:45:58,430 OK. 1109 00:45:58,430 --> 00:46:02,140 Well, I tara l-żewġ pointers, iżda dawn ma jidhirx li jkun tipponta lejn xi ħaġa. 1110 00:46:02,140 --> 00:46:02,980 >> -li-Dritt. 1111 00:46:02,980 --> 00:46:05,100 Inizjalment, pointers ma jurux xejn. 1112 00:46:05,100 --> 00:46:08,030 L-affarijiet dawn jenfasizzaw huma msejħa pointees, u meta dawn jitwaqqfu l 1113 00:46:08,030 --> 00:46:09,370 pass separat. 1114 00:46:09,370 --> 00:46:10,220 >> -OH, Id-dritt, id-dritt. 1115 00:46:10,220 --> 00:46:10,950 Jien kont naf li. 1116 00:46:10,950 --> 00:46:12,385 Il pointees huma separati. 1117 00:46:12,385 --> 00:46:14,315 Er, hekk kif taħseb li jallokaw pointee? 1118 00:46:14,315 --> 00:46:15,340 1119 00:46:15,340 --> 00:46:15,960 >> OK. 1120 00:46:15,960 --> 00:46:18,970 Ukoll, dan il-kodiċi jalloka a pointee ġdid numru sħiħ, 1121 00:46:18,970 --> 00:46:20,950 u dan parti tistabbilixxi x-punt lilha. 1122 00:46:20,950 --> 00:46:22,050 1123 00:46:22,050 --> 00:46:23,230 >> -Hey, Li jistenna aħjar. 1124 00:46:23,230 --> 00:46:25,060 Sabiex tagħmel dan jagħmlu xi ħaġa. 1125 00:46:25,060 --> 00:46:25,990 >> OK. 1126 00:46:25,990 --> 00:46:30,455 I ser dereference il-pointer x biex jaħżen numru 42 fis pointee tagħha. 1127 00:46:30,455 --> 00:46:32,830 Għal dan trick, I bzonn tiegħi Magic Wand ta Dereferencing. 1128 00:46:32,830 --> 00:46:34,130 1129 00:46:34,130 --> 00:46:36,080 >> -Your Magic Wand ta Dereferencing? 1130 00:46:36,080 --> 00:46:37,357 1131 00:46:37,357 --> 00:46:38,190 That-- li l-kbir. 1132 00:46:38,190 --> 00:46:39,340 1133 00:46:39,340 --> 00:46:41,080 >> -Dan Huwa dak li l-kodiċi Dehra. 1134 00:46:41,080 --> 00:46:44,110 I ser biss twaqqaf in-numru, u [POP] 1135 00:46:44,110 --> 00:46:44,700 >> -Hey, Ħarsa. 1136 00:46:44,700 --> 00:46:46,140 Hemm din tmur. 1137 00:46:46,140 --> 00:46:50,980 >> -Allura Tagħmel dereference fuq x ġej il-vleġġa għall-aċċess pointee tagħha. 1138 00:46:50,980 --> 00:46:53,160 F'dan il-każ, maħżen 42 fil hemmhekk. 1139 00:46:53,160 --> 00:46:57,710 Hey ipprova uża dan biex jaħżnu l-għadd 13 permezz tal-pointer oħra, y. 1140 00:46:57,710 --> 00:46:58,760 >> OK. 1141 00:46:58,760 --> 00:47:03,270 I ser biss jmorru fuq hawn biex y, u jiksbu l-numru 13 set up. 1142 00:47:03,270 --> 00:47:07,930 U mbagħad, jieħdu l-Wand ta Dereferencing u biss [BUZZ] 1143 00:47:07,930 --> 00:47:08,960 >> -OH! 1144 00:47:08,960 --> 00:47:09,500 >> -OH, Ħej! 1145 00:47:09,500 --> 00:47:11,090 Li ma ħadmux. 1146 00:47:11,090 --> 00:47:15,630 Say, Binky, ma naħsibx dereferencing y hija idea tajba, għaliex inti taf, 1147 00:47:15,630 --> 00:47:17,850 twaqqif tal-pointee huwa pass separat. 1148 00:47:17,850 --> 00:47:20,450 U jien ma naħsibx li aħna qatt ma kien. 1149 00:47:20,450 --> 00:47:21,480 >> Punt -Good. 1150 00:47:21,480 --> 00:47:21,980 -Yeah. 1151 00:47:21,980 --> 00:47:25,680 Aħna allokat il-y pointer, iżda aħna qatt tistabbilixxi li jippuntaw lejn pointee. 1152 00:47:25,680 --> 00:47:27,190 1153 00:47:27,190 --> 00:47:28,616 >> -Very Attent. 1154 00:47:28,616 --> 00:47:30,240 -Hey, Qed tfittex tajba hemmhekk, Binky. 1155 00:47:30,240 --> 00:47:33,400 Inti tista 'tiffissa lilha hekk li l-punti y għall-istess pointee bħala x? 1156 00:47:33,400 --> 00:47:34,000 >> -Sure. 1157 00:47:34,000 --> 00:47:36,780 I ser tuża Magic Wand tiegħi ta 'Assenjament Pointer. 1158 00:47:36,780 --> 00:47:38,740 >> -Il Li għaddej biex tkun problema bħal qabel? 1159 00:47:38,740 --> 00:47:39,240 -Nru. 1160 00:47:39,240 --> 00:47:40,660 Dan ma tmissx il-pointees. 1161 00:47:40,660 --> 00:47:44,450 Hija biss bidliet pointer wieħed biex punt li l-istess ħaġa bħat ieħor. 1162 00:47:44,450 --> 00:47:45,450 >> -OH, Nara. 1163 00:47:45,450 --> 00:47:48,200 Issa punti Y-istess post bħall x. 1164 00:47:48,200 --> 00:47:48,910 Allura stenna. 1165 00:47:48,910 --> 00:47:49,950 Issa, y hija ffissata. 1166 00:47:49,950 --> 00:47:51,120 Hija għandha pointee. 1167 00:47:51,120 --> 00:47:54,510 Allura inti tista 'tipprova l-Wand ta Dereferencing darb'oħra biex jibagħtu l-13 fuq. 1168 00:47:54,510 --> 00:47:56,510 >> -Uh, OK. 1169 00:47:56,510 --> 00:47:58,160 Hawnhekk tmur. [POP] 1170 00:47:58,160 --> 00:47:59,340 >> -Hey, Tħares lejn dak. 1171 00:47:59,340 --> 00:48:00,750 Issa dereferencing xogħlijiet fuq y. 1172 00:48:00,750 --> 00:48:04,991 U minħabba l-pointers huma qsim li pointee wieħed, tnejn tara l-13. 1173 00:48:04,991 --> 00:48:05,490 -Yeah. 1174 00:48:05,490 --> 00:48:06,870 Qsim, ikun x'ikun. 1175 00:48:06,870 --> 00:48:08,820 Allura aħna se jaqilbu postijiet issa? 1176 00:48:08,820 --> 00:48:09,440 >> Oh, tħares. 1177 00:48:09,440 --> 00:48:10,830 We qed barra ta 'żmien. 1178 00:48:10,830 --> 00:48:11,570 >> -But-- 1179 00:48:11,570 --> 00:48:13,530 >> Just ftakar-tliet regoli pointer. 1180 00:48:13,530 --> 00:48:16,560 Numru Wieħed, l-istruttura bażika huwa li inti għandek pointer, 1181 00:48:16,560 --> 00:48:18,680 u punti fuq għal pointee. 1182 00:48:18,680 --> 00:48:20,640 Iżda l-pointer u pointee huma separati, 1183 00:48:20,640 --> 00:48:22,610 u l-iżball komuni huwa li jitwaqqaf pointer, 1184 00:48:22,610 --> 00:48:25,000 iżda li tinsa biex tagħtiha pointee. 1185 00:48:25,000 --> 00:48:28,170 >> Numru Tnejn, dereferencing pointer jibda fil-pointer 1186 00:48:28,170 --> 00:48:31,050 u ssegwi vleġġa tiegħu fuq għall-aċċess pointee tagħha. 1187 00:48:31,050 --> 00:48:33,400 Kif nafu lkoll, dan jaħdem biss jekk ikun hemm 1188 00:48:33,400 --> 00:48:36,270 a pointee, liema tip ta ' gets lura għall-numru wieħed regola. 1189 00:48:36,270 --> 00:48:39,000 >> Numru Tliet, pointer assenjazzjoni jieħu pointer waħda 1190 00:48:39,000 --> 00:48:42,320 u bidliet li punt li l- istess pointee bħala pointer ieħor. 1191 00:48:42,320 --> 00:48:44,160 Allura wara l-assenjazzjoni, iż-żewġ pointers 1192 00:48:44,160 --> 00:48:45,910 se jindika l-istess pointee. 1193 00:48:45,910 --> 00:48:47,990 Kultant, li sejjaħ qsim. 1194 00:48:47,990 --> 00:48:49,740 U li kollox hemm għaliha, verament. 1195 00:48:49,740 --> 00:48:50,277 Bye bye issa. 1196 00:48:50,277 --> 00:48:51,110 [END daqq ta 'video] 1197 00:48:51,110 --> 00:48:52,568 DAVID J. Malan: Li lilha għall CS50. 1198 00:48:52,568 --> 00:48:55,110 Aħna se tara int ġimgħa d-dieħla. 1199 00:48:55,110 --> 00:48:56,064