1 00:00:00,000 --> 00:00:02,760 [Powered by Google Translate] [ĠIMGĦA 5] 2 00:00:02,760 --> 00:00:04,760 [David J. Malan, Università ta 'Harvard] 3 00:00:04,760 --> 00:00:11,990 [Dan huwa CS50.] [CS50.TV] 4 00:00:11,990 --> 00:00:17,780 [Mara] Hu tinsab; dwar dak, I do not know. 5 00:00:17,780 --> 00:00:20,300 [Man] Mela xi do we know? 6 00:00:20,300 --> 00:00:24,120 [Mara] Li fil 09:15, Ray Santoya kien fil-ATM. 7 00:00:24,120 --> 00:00:27,420 [Man] Għalhekk il-kwistjoni hija, dak li kien hu tagħmel fil 09:16? 8 00:00:27,420 --> 00:00:29,980 [Mara] Shooting l mm 9 fuq xi ħaġa. 9 00:00:29,980 --> 00:00:31,900 Forsi huwa ra l-sniper. 10 00:00:31,900 --> 00:00:34,000 [Man] Jew li kien jaħdem miegħu. 11 00:00:34,000 --> 00:00:36,330 [Mara] Stenna. Mur lura 1. 12 00:00:36,330 --> 00:00:38,330 [Man] Liema taħseb? 13 00:00:38,330 --> 00:00:44,520 [♫ ♫ mużika suspenseful] 14 00:00:44,520 --> 00:00:48,320 [Mara] Ġib wiċċu up. Full screen. 15 00:00:48,320 --> 00:00:51,230 [Man] nuċċalijiet tiegħu. >> Hemm riflessjoni. 16 00:00:51,230 --> 00:01:00,810 [♫ ♫ mużika suspenseful] 17 00:01:00,810 --> 00:01:03,580 [Man] Dik hija l-tim tal-baseball Nuevita s. Dak il-logo tagħhom. 18 00:01:03,580 --> 00:01:07,790 [Mara] U hu tkellem lil min l-ilbies li ġakketta. 19 00:01:07,790 --> 00:01:13,730 >> [David Malan] Għalhekk, din hija CS50 ġimgħa 5, u llum aħna rovina daqsxejn ta 'televiżjoni u movie għalik. 20 00:01:13,730 --> 00:01:16,170 Allura meta inti qed jaraw juru bħal dan wieħed hawn, 21 00:01:16,170 --> 00:01:19,910 u l-kobob jgħidu "Tista 'tnaddaf li sa?" jew "Tittejjeb," 22 00:01:19,910 --> 00:01:21,900 m'hemm l-ebda ttejjeb fid-dinja reali. 23 00:01:21,900 --> 00:01:25,220 Fil-fatt, dak li int verament tikseb hija ftit xi ħaġa bħal din. 24 00:01:25,220 --> 00:01:27,570 Stajt jinġibed jibdew waħda mill-ritratti persunal mill-paġna. 25 00:01:27,570 --> 00:01:30,980 Dan huwa programm imsejjaħ Photoshop. Dan huwa 1 ta '2 Bowdens, 26 00:01:30,980 --> 00:01:36,300 1 ta '3 Bowdens attwalment, illum, għaliex għandna Mrs Bowden hawnhekk ukoll, bil Rob u Paul. 27 00:01:36,300 --> 00:01:41,950 Iżda hawnhekk huwa Rob fuq l-iskrin, u jekk aħna zoom fl fuq dak glint hu dejjem kellu fl-għajnejn tiegħu, 28 00:01:41,950 --> 00:01:47,600 dak li inti fil-fatt tara hija li dak li tara li dak ikollok. 29 00:01:47,600 --> 00:01:51,690 Dan huwa "mtejba," hekk "CSI" għandhom hija daqsxejn ħażina. 30 00:01:51,690 --> 00:01:55,190 Hemm wieħed clip oħra, jekk nistgħu pick fuq "CSI" biss ftit itwal. 31 00:01:55,190 --> 00:01:58,500 Dan huwa wieħed frażi sbieħ li utter minn issa jekk inti tixtieq li 32 00:01:58,500 --> 00:02:10,280 sod tekniku mal-ħbieb tiegħek meta, verament, inti qed tgħid assolutament xejn. 33 00:02:10,280 --> 00:02:12,970 >> [Man] Għal ġimgħat stajt ġiet tinvestiga l-qtil Killer cabby 34 00:02:12,970 --> 00:02:15,360 bil fascination morbidità ċerti. 35 00:02:15,360 --> 00:02:17,160 [Mara # 1] Dan huwa fil-ħin reali. 36 00:02:17,160 --> 00:02:22,930 [Mara # 2] I ser toħloq interface GUI jużaw Visual Basic, ara jekk I tista 'ssegwi l-indirizz IP. 37 00:02:22,930 --> 00:02:29,570 >> [Malan] Mela awdjo minn sync twarrib, ħolqien ta 'interface GUI jużaw Visual Basic 38 00:02:29,570 --> 00:02:31,820 li jsegwu l-indirizz IP huwa nonsense kompluta. 39 00:02:31,820 --> 00:02:33,840 Dawn il-ġranet inti ma tkunx tuża Visual Basic, 40 00:02:33,840 --> 00:02:38,920 hemm l-ebda ħtieġa għal GUI, u l-indirizz IP kien terminu teknikament preċiżi. 41 00:02:38,920 --> 00:02:41,730 Allura żżomm għajnejk barra għal dawn, u wieħed mill-favoriti tiegħi: 42 00:02:41,730 --> 00:02:45,070 Dan wieħed ftit aktar arcane, għaliex għandek bżonn tkun taf lingwa differenti. 43 00:02:45,070 --> 00:02:47,860 Hemm lingwa imsejjaħ Objettiv-C, li huwa superset ta 'C. 44 00:02:47,860 --> 00:02:51,960 Li jfisser C huwa flimkien ma 'xi karatteristiċi addizzjonali, fosthom oġġett orjentati lejn programmazzjoni. 45 00:02:51,960 --> 00:02:55,070 U dan huwa l-lingwa li Apple popularized għall-ipprogrammar IOS. 46 00:02:55,070 --> 00:02:58,760 U hekk hawn clip minn juru differenti għal kollox, minn "Numri", 47 00:02:58,760 --> 00:03:02,450 li jekk inti fil-fatt tħares mill-qrib fuq TIVO tiegħek u nieqaf fil-mument opportun, 48 00:03:02,450 --> 00:03:07,700 tkun taf tara li dak li qed tfittex fil huwa pjuttost mhux dak li qed jiġi deskritt. 49 00:03:07,700 --> 00:03:11,170 U let me tipprova konnettur awdjo differenti hawn u ara jekk ma nistgħux 50 00:03:11,170 --> 00:03:13,780 iżommu l-awdjo fil-sinkronizzazzjoni tas f'dan il-ħin. 51 00:03:13,780 --> 00:03:20,530 I jagħtuk "Numri". 52 00:03:20,530 --> 00:03:23,240 >> [Man # 1] Huwa l-indirizz 32-bit IPv4. 53 00:03:23,240 --> 00:03:38,930 [Man # 2] PI, dan huwa l-Internet. >> Privat netwerk. Huwa netwerk privat Anita s. 54 00:03:38,930 --> 00:03:43,810 [Malan] Okay. Dan huwa Għan-C, u huwa għal programm kulur xi gidi, 55 00:03:43,810 --> 00:03:51,140 kif inti tista 'forsi jiġi dedott mill-isem tal-varjabbli hemmhekk. 56 00:03:51,140 --> 00:03:54,410 Allura li, imbagħad, kien "Numri". Allura llum u din il-ġimgħa aħna jintroduċu 57 00:03:54,410 --> 00:03:57,740 xi ftit tad-dinja tal-forensiċi u l-kuntest il-problemi għal dan. 58 00:03:57,740 --> 00:04:00,590 Illum se jkun lecture mqassra għaliex hemm avveniment speċjali fil hawn 59 00:04:00,590 --> 00:04:05,530 afterward, hekk aħna ser tieħu Peek, u tease kemm studenti u ġenituri bl-istess mod llum 60 00:04:05,530 --> 00:04:07,420 ma 'wħud mill-affarijiet li huma fuq l-orizzont. 61 00:04:07,420 --> 00:04:12,240 Fost dawn, bħala ta 'Tnejn, ser ikollok xi klassi ftit aktar. 62 00:04:12,240 --> 00:04:16,050 EDX, Harvard u mits ġdid inizjattiva onlajn għall-korsijiet miftuħa 63 00:04:16,050 --> 00:04:19,120 u aktar, qed tniedi fuq il-kampus Harvard nhar it-Tnejn. 64 00:04:19,120 --> 00:04:21,490 Li jfisser it-tnejn jiġu ser ikollok - bħala ta 'għadd tal-aħħar, 65 00:04:21,490 --> 00:04:26,210 86000 klassi addizzjonali għandhom jiġu wara flimkien ma 'lezzjonijiet CS50 s 66 00:04:26,210 --> 00:04:29,170 u sezzjonijiet u walkthroughs u settijiet problema. 67 00:04:29,170 --> 00:04:32,350 U bħala parti minn dan, inti se jsiru membri tal-klassi inawgurali ta ' 68 00:04:32,350 --> 00:04:35,090 CS50 u issa CS50x. 69 00:04:35,090 --> 00:04:39,310 >> Bħala parti minn dan, issa, tirrealizza li se jkun hemm xi upsides ukoll. 70 00:04:39,310 --> 00:04:43,790 Biex tikseb lesti għal dan, għan-numru kbir ta 'studenti, 71 00:04:43,790 --> 00:04:47,180 huwa biżżejjed li jingħad li anke jekk aħna għandna 108 TFS u CAs, 72 00:04:47,180 --> 00:04:50,790 mhix l-aħjar istudent / għalliema proporzjon darba aħna hit 80000 studenti oħra. 73 00:04:50,790 --> 00:04:52,850 Allura aħna mhux se tkun problema gradazzjoni tant settijiet manwalment. 74 00:04:52,850 --> 00:04:55,920 Allura introdotta din il-ġimgħa fis-sett problema se tkun CS50 Iċċekkja, 75 00:04:55,920 --> 00:04:58,450 li se tkun ta 'utilità linja tal-kmand fl-appliance 76 00:04:58,450 --> 00:05:01,200 li inti ser tingħata ladarba inti jaġġornaw dan aktar tard dan il-weekend, 77 00:05:01,200 --> 00:05:03,200 u tkun taf tkun kapaċi tmexxi kmand, check 50, 78 00:05:03,200 --> 00:05:06,500 fuq pset tiegħek, u int ser tingħata xi feedback dwar jekk programm tiegħek hija 79 00:05:06,500 --> 00:05:11,160 eżatta jew żbaljata skond l-ispeċifikazzjonijiet varji tad-disinn li għandna pprovduti. 80 00:05:11,160 --> 00:05:13,580 Allura aktar fuq dak u l-ispeċifikazzjoni sett problema u 81 00:05:13,580 --> 00:05:17,240 il-klassi CS50x se tuża dan ukoll. 82 00:05:17,240 --> 00:05:19,230 >> Allura sett problema 4 hija dwar forensika. 83 00:05:19,230 --> 00:05:21,940 U din il-biċċa kienet ispirata minn uħud għalf reali tal-ħajja, 84 00:05:21,940 --> 00:05:24,620 fejn I meta kien fl-iskola gradwati, I internati għal waqt ma ' 85 00:05:24,620 --> 00:05:28,650 Uffiċċju tal-Kontea Middlesex tal District Avukat tagħmel xogħol forensika 86 00:05:28,650 --> 00:05:31,650 mal investigatur forensika tagħhom vantaġġ dak li din kienet tammonta għal 87 00:05:31,650 --> 00:05:35,260 huwa, I think semmejt passat ġimgħa ftit, l hija l-pulizija Istat Massa jew oħrajn 88 00:05:35,260 --> 00:05:39,000 kieku jidħlu fi, dawn qatra off affarijiet simili hard drives u CDs u floppy disks 89 00:05:39,000 --> 00:05:42,340 u simili, u allura l-għan ta 'l-uffiċċju forensika kien li tivverifika jekk 90 00:05:42,340 --> 00:05:44,600 kien hemm jew ma kienx evidenza ta 'xi tip. 91 00:05:44,600 --> 00:05:48,010 Dan kien l-Unità Investigazzjonijiet Speċjali, allura kien jaħdem bil-pinna kriminalità, 92 00:05:48,010 --> 00:05:52,350 kien tip aktar inkwetanti ta 'reati, 93 00:05:52,350 --> 00:05:55,990 xi ħaġa li jinvolvu xi tip ta 'midja diġitali; Jirriżulta li mhux li ħafna nies 94 00:05:55,990 --> 00:05:59,370 tikteb email qal "I ma kien." 95 00:05:59,370 --> 00:06:03,290 Allura ħafna drabi dawn it-tfittxijiet forensiċi ma dawran sa kollha li l-frott ħafna, 96 00:06:03,290 --> 00:06:05,850 imma xi kultant in-nies se jikteb emails bħal dawn. 97 00:06:05,850 --> 00:06:08,490 Allura xi kultant l-isforzi kienu ppremjati. 98 00:06:08,490 --> 00:06:14,420 >> Iżda biex iwasslu sa dan pset forensika, aħna ser tkun introdotta fl-pset 4 daqsxejn ta 'grafika. 99 00:06:14,420 --> 00:06:18,260 Allura inti probabilment tieħu dawn l-affarijiet għall mogħtija, JPEGs, GIFs u bħalhom dawn il-ġranet, 100 00:06:18,260 --> 00:06:21,640 imma jekk int verament taħseb dwarha, immaġni, ferm simili wiċċ Rob s, 101 00:06:21,640 --> 00:06:24,430 tista 'tiġi mmudellata bħala sekwenza ta' tikek, jew pixels. 102 00:06:24,430 --> 00:06:26,680 Issa, fil-każ ta 'wiċċ Rob s, hemm kull xorta ta' kuluri, 103 00:06:26,680 --> 00:06:29,940 u bdejna biex tara l-tikek individwali, otherwide magħrufa bħala pixels, 104 00:06:29,940 --> 00:06:31,610 ladarba bdejna li zoom pulzieri 105 00:06:31,610 --> 00:06:35,590 Imma jekk aħna simplifikata l-dinja ftit, u biss jgħidu li dan hawnhekk huwa Rob 106 00:06:35,590 --> 00:06:40,560 bl-iswed u abjad, ukoll, li jirrappreżentaw iswed u abjad nistgħu biss użu binarja. 107 00:06:40,560 --> 00:06:44,960 U jekk aħna qed tmur għall-użu binarju, 1 jew 0, nistgħu tesprimi din istess immaġini 108 00:06:44,960 --> 00:06:51,970 ta 'wiċċ jitbissem Rob ma' dan il-mudell ta 'bits: 11000011 jirrappreżenta 109 00:06:51,970 --> 00:06:55,160 abjad, abjad, iswed, iswed, iswed, iswed, abjad abjad. 110 00:06:55,160 --> 00:06:59,290 U għalhekk mhuwiex qabża kbira, imbagħad, li jibda jitkellem dwar ritratti ikkuluriti. 111 00:06:59,290 --> 00:07:01,920 Affarijiet li inti tara fuq Facebook jew jieħdu bil-kamera diġitali, 112 00:07:01,920 --> 00:07:04,730 iżda, ċertament, meta niġu għall-kuluri, inti għandek bżonn bits aktar. 113 00:07:04,730 --> 00:07:08,470 U pjuttost komuni fid-dinja ta 'ritratti huwa l-użu mhux 1-bit kulur, 114 00:07:08,470 --> 00:07:12,730 kif dan jissuġġerixxi, iżda 24-bit kulur, fejn inti fil-fatt tikseb miljuni ta 'kuluri. 115 00:07:12,730 --> 00:07:15,430 Hekk kif fil-każ meta aħna żżomjati fl fuq għajnejn Rob s, 116 00:07:15,430 --> 00:07:19,270 li kien kull numru ta 'miljuni ta' possibbiltajiet ikkuluriti differenti. 117 00:07:19,270 --> 00:07:22,260 >> Allura aħna ser jintroduċu din fil-sett il-problema 4 kif ukoll fil-walkthrough, 118 00:07:22,260 --> 00:07:27,050 li se tkun llum fil 03:30 minflok il-soltu 2:30 minħabba lecture nhar il-Ġimgħa hawn. 119 00:07:27,050 --> 00:07:29,930 Iżda l-video se jkun online, bħas-soltu, għada. 120 00:07:29,930 --> 00:07:31,880 Aħna ser wkoll jintroduċu inti ieħor format tal-fajl. 121 00:07:31,880 --> 00:07:34,150 Allura dan huwa deliberatament maħsub biex tħares intimidanti fl-ewwel, 122 00:07:34,150 --> 00:07:38,980 iżda din hija biss xi dokumentazzjoni għal Struct C. 123 00:07:38,980 --> 00:07:42,280 Jirriżulta li Microsoft, snin ilu, għenet popularize dan il-format, 124 00:07:42,280 --> 00:07:46,630 imsejjaħ il-format tal-fajl Bitmap, BMP, u dan kien super-sempliċi, 125 00:07:46,630 --> 00:07:50,390 colorful grafika fajl format li kien użat għal żmien pjuttost twil 126 00:07:50,390 --> 00:07:53,640 u xi kultant xorta għal wallpapers fuq desktops. 127 00:07:53,640 --> 00:07:57,410 Jekk taħseb lura għall-Windows XP u l-rolling għoljiet u sema ikħal, 128 00:07:57,410 --> 00:08:00,660 li kien tipikament BMP, jew immaġni Bitmap, u bitmaps 129 00:08:00,660 --> 00:08:03,340 huma divertenti għalina għaliex għandhom kumplessità daqsxejn aktar. 130 00:08:03,340 --> 00:08:05,640 Mhuwiex daqshekk sempliċi bħal dan grilja ta '0 u 1 ta; 131 00:08:05,640 --> 00:08:10,680 minflok, għandek affarijiet simili header fil-bidu ta 'fajl. 132 00:08:10,680 --> 00:08:15,520 Allura fi kliem ieħor, ġewwa fajl BMP. Huwa mazz sħiħ ta 'l-0 u 1, il- 133 00:08:15,520 --> 00:08:18,070 imma hemm xi addizzjonali 0 u 1 fil hemmhekk. 134 00:08:18,070 --> 00:08:21,450 U jirriżulta li dak li aħna ħadthom probabbilment meħuda għall mogħtija għas-snin, 135 00:08:21,450 --> 00:08:27,040 formati tal-fajl bħal. dok jew. xls jew. mp3 jew. mp4, 136 00:08:27,040 --> 00:08:29,910 tkun xi tkun l-formati tal-fajl li int familjari magħhom. 137 00:08:29,910 --> 00:08:31,900 Ukoll, dak ma jfissirx anki biex tkun format tal-fajl? 138 00:08:31,900 --> 00:08:35,740 Minħabba fl-aħħar tal-ġurnata, kollha ta 'dawn il-fajls li nużaw għadek 0 u l-1 139 00:08:35,740 --> 00:08:39,950 u forsi dawk 0 u għal 1 jirrappreżentaw, b, c, permezz ASCII jew bħalhom, 140 00:08:39,950 --> 00:08:42,030 iżda permezz tal-aħħar tal-ġurnata, huwa biss l-0 u 1 ta. 141 00:08:42,030 --> 00:08:45,300 >> Allura bnedmin biss okkażjonalment tiddeċiedi li jivvintaw format tal-fajl ġdid 142 00:08:45,300 --> 00:08:49,420 fejn jistandardizzaw liema mudelli ta 'bits fil-fatt se jfisser. 143 00:08:49,420 --> 00:08:52,790 U f'dan il-każ hawnhekk, il-folks li ddisinjati l-format tal-fajl Bitmap 144 00:08:52,790 --> 00:08:58,260 qal li fl-ewwel byte fil-fajl Bitmap, kif hemm miktub offset 0, hemm, 145 00:08:58,260 --> 00:09:02,320 hemm għaddej li jkun hemm xi cryptically imsejjaħ bfType varjabbli imsejħa, 146 00:09:02,320 --> 00:09:06,510 li biss stands għal tip ta 'fajl Bitmap; liema tip tal-fajl Bitmap dan huwa. 147 00:09:06,510 --> 00:09:10,780 Tista 'tiddeduċi, forsi, mit-tieni ringiela li jikkumpensaw 2, in-numru byte 2, 148 00:09:10,780 --> 00:09:15,980 għandha mudell ta '0 u għal 1 li tirrappreżenta dak li? 149 00:09:15,980 --> 00:09:18,320 Id-daqs ta 'xi ħaġa, u din tmur fuq minn hemm. 150 00:09:18,320 --> 00:09:20,660 Allura fil-sett problema 4, inti ser tkun mixi permezz xi wħud minn dawn l-affarijiet. 151 00:09:20,660 --> 00:09:24,480 >> Aħna mhux se jispiċċaw jieħdu ħsieb dwar kull wieħed minnhom, iżda tinnota li jibda biex tikseb interessanti 152 00:09:24,480 --> 00:09:30,780 madwar linja jew byte 54, rgbtBlue, Green u Red. 153 00:09:30,780 --> 00:09:35,280 Jekk inti stajt qatt semgħu l-akronimu RGB, aħmar aħdar blu, din hija referenza għal dik. 154 00:09:35,280 --> 00:09:37,840 Minħabba jirriżulta li inti tista 'żebgħa l-kuluri tal-qawsalla 155 00:09:37,840 --> 00:09:41,580 ma 'xi kombinazzjoni ta' aħmar u blu u ħodor. 156 00:09:41,580 --> 00:09:46,560 U, fil-fatt, il-ġenituri fil-kamra tista 'lura uħud mill-proġekters kmieni. 157 00:09:46,560 --> 00:09:49,360 Dawn il-ġranet, inti biss tara 1 dawl qawwi li joħorġu ta 'lenti. 158 00:09:49,360 --> 00:09:52,870 Iżda lura fil-ġurnata, kellek il-lenti aħmar, il-lenti blu, u l-lenti aħdar 159 00:09:52,870 --> 00:09:56,620 u flimkien huma mmirati lejn l-iskrin u ffurmaw stampa ikkuluriti. 160 00:09:56,620 --> 00:09:59,590 U spiss iskejjel tan-nofs u l-iskejjel għolja jkollhom dawk il-lentijiet 161 00:09:59,590 --> 00:10:02,680 dejjem hekk ftit askew, sabiex inti kienu it-tip ta 'tara immaġini doppja jew trippla, 162 00:10:02,680 --> 00:10:07,500 iżda li kien l-idea. Kellek dawl aħmar u aħdar u blu pittura stampa. 163 00:10:07,500 --> 00:10:09,570 U li l-istess prinċipju huwa użat fil-kompjuters. 164 00:10:09,570 --> 00:10:12,000 >> Allura fost l-isfidi, allura, għalik fl-problema stabbiliti 4 165 00:10:12,000 --> 00:10:16,080 ser ikunu ftit affarijiet; wieħed huwa li attwalment resize 'immaġni. 166 00:10:16,080 --> 00:10:18,050 Biex jittieħed fil-mudell ta '0 u 1, il- 167 00:10:18,050 --> 00:10:22,840 figura li biċċiet ta 'l-0 u l-1 jirrappreżentaw dak fi struttura bħal din, 168 00:10:22,840 --> 00:10:26,800 u mbagħad figura kif tiġi replikata l-pixels: l-ħomor, blu, l-il-ħodor 169 00:10:26,800 --> 00:10:32,460 ġewwa b'tali mod li meta stampa tidher bħal dan fil-bidu, jista 'dehra dan minflok wara dik. 170 00:10:32,460 --> 00:10:35,590 Fost l-isfidi l-oħra, ukoll, se tkun li inti ser tingħata 171 00:10:35,590 --> 00:10:38,900 dehra forensika ta 'fajl attwali minn kamera diġitali 172 00:10:38,900 --> 00:10:42,410 u fuq dik il camera, ladarba fuq żmien, kienu mazz sħiħ ta 'ritratti. 173 00:10:42,410 --> 00:10:47,030 Il-problema hija, aħna aċċidentalment mħassra jew kellha l-immaġini korrotta b'xi. 174 00:10:47,030 --> 00:10:51,040 Affarijiet ħżiena jiġri bil-kameras diġitali, u hekk aħna malajr kkupjati kollha ta 'l tal-0 u l-1 175 00:10:51,040 --> 00:10:55,410 off ta 'dik il-karta għalik, iffrankat lilhom kollha fil-1 fajl kbir, u mbagħad aħna ser jgħadduhom lilek 176 00:10:55,410 --> 00:11:00,000 fil-problema stabbiliti 4 sabiex inti tista 'tikteb programm C li biex jirkupraw 177 00:11:00,000 --> 00:11:02,660 kollha ta 'dawk JPEGs, idealment. 178 00:11:02,660 --> 00:11:06,280 U jirriżulta li JPEGs, anki jekk dawn qed kemmxejn ta 'format tal-fajl kumpless, 179 00:11:06,280 --> 00:11:09,580 dawn qed ħafna aktar kumplessi minn dan il-wiċċ jitbissem hawn. 180 00:11:09,580 --> 00:11:14,320 Jirriżulta li kull JPEG jibda bil-mudelli istess '0 u 1 ta. 181 00:11:14,320 --> 00:11:18,820 Allura bl-użu ta loop waqt jew għall loop jew simili, 182 00:11:18,820 --> 00:11:22,350 inti tista 'ttenni fuq kollha tal-0 u 1 f'dan ir-immaġini forensika 183 00:11:22,350 --> 00:11:26,670 u kull darba li inti tara l-mudell speċjali li l-iddefinit fl-ispeċifikazzjoni-sett problema, l- 184 00:11:26,670 --> 00:11:29,770 inti tista 'tassumi, "Oh, hawnhekk hija, bi probabbiltà għolja ħafna, 185 00:11:29,770 --> 00:11:33,520 l-bidu ta 'JPEG, "u hekk kif inti ssib l-istess mudell, 186 00:11:33,520 --> 00:11:36,050 xi numru ta 'bytes jew kilobytes jew megabytes aktar tard, 187 00:11:36,050 --> 00:11:40,550 inti tista 'tassumi, "Ooh! Hawnhekk huwa JPEG 2, ir-ritratt I ħa wara l-ewwel waħda. 188 00:11:40,550 --> 00:11:44,720 Let me tieqaf qari dan il-fajl ewwel, tibda bil-miktub dan wieħed ġdid. " 189 00:11:44,720 --> 00:11:49,980 U l-output tal-programm tiegħek għall pset 4 se tkun daqs 50 JPEGs. 190 00:11:49,980 --> 00:11:52,400 U jekk mhuwiex 50 JPEGs, ikollok daqsxejn ta 'linja. 191 00:11:52,400 --> 00:11:55,580 Jekk għandek numru infinit ta 'JPEGs, għandek loop infinita. 192 00:11:55,580 --> 00:11:58,280 Allura li, ukoll, se jkun pjuttost każ komuni. 193 00:11:58,280 --> 00:12:00,280 Dan huwa x'hemm fuq l-orizzont. 194 00:12:00,280 --> 00:12:03,740 >> Quiz 0, warajna. Realizzata, kull email tiegħi, li kostantement hemm folks 195 00:12:03,740 --> 00:12:06,820 li huma t-tnejn kuntenti, tip ta 'newtrali, u diqa madwar kwizz 0 iż-żmien. 196 00:12:06,820 --> 00:12:10,160 U jekk jogħġbok jilħqu lili, l-TFS ras, Zamyla, TF tiegħek 197 00:12:10,160 --> 00:12:14,120 jew wieħed mill-CAs li inti tkun taf jekk inti tixtieq tiddiskuti kif l-affarijiet marru. 198 00:12:14,120 --> 00:12:16,460 >> Allura biex jimpressjonaw lill-ġenituri hawn fil-kamra, 199 00:12:16,460 --> 00:12:23,990 x'inhi l-librerija CS50? Tajba tax-xogħol. 200 00:12:23,990 --> 00:12:32,280 X'hemm-librerija CS50? Yeah? [Tweġibiet Student, mhux intelliġibbli] 201 00:12:32,280 --> 00:12:35,730 >> Okay, tajba. Allura huwa sett prewritten tal-kodiċi li aħna, l-istaff, kiteb, 202 00:12:35,730 --> 00:12:38,460 nipprovdu lilek, sabiex jipprovdu xi funzjonalitajiet komuni. 203 00:12:38,460 --> 00:12:42,290 Jittieħed simili nikseb me string; tikseb me int, kollha tal-funzjonijiet li huma elenkati hawn. 204 00:12:42,290 --> 00:12:45,260 Bidu issa, nibdew biex verament jieħdu dawn ir-roti ta 'taħriġ off. 205 00:12:45,260 --> 00:12:48,230 Allura aħna qed tmur biex tibda tieħu bogħod "string" minn int, 206 00:12:48,230 --> 00:12:52,790 li, irtirar, kien biss sinonimu għal liema tip ta 'data attwali? char *. 207 00:12:52,790 --> 00:12:57,020 Allura għall-ġenituri, li kien probabbilment - li tajjeb, hekk * char aħna ser tibda tara 208 00:12:57,020 --> 00:13:00,810 fuq l-iskrin l-aktar kif aħna tneħħi "string" minn vokabularju tagħna, 209 00:13:00,810 --> 00:13:02,760 mill-inqas meta niġu biex effettivament tikteb kodiċi. 210 00:13:02,760 --> 00:13:06,240 Bl-istess mod, aħna ser tieqaf tuża xi wħud minn dawn il-funzjonijiet kemm, 211 00:13:06,240 --> 00:13:08,390 għaliex programmi tagħna huma se tikseb aktar sofistikati 212 00:13:08,390 --> 00:13:11,370 aktar milli biss jiktbu programmi li tiltaqa hemm ma 'Teptip fil-pront, 213 00:13:11,370 --> 00:13:13,580 stennija għall-utent tat-tip xi ħaġa pulzieri 214 00:13:13,580 --> 00:13:15,220 Int ser tingħata inputs tiegħek minn x'imkien ieħor. 215 00:13:15,220 --> 00:13:18,720 Per eżempju, inti ser tingħata lilhom minn serje ta 'bits fuq il-hard drive lokali. 216 00:13:18,720 --> 00:13:23,340 Int ser minflok tikseb minnhom fil-futur minn konnessjoni tan-netwerk, xi websajt x'imkien. 217 00:13:23,340 --> 00:13:27,460 Mela ejja qoxra lura dan is-saff għall-ewwel darba, u iġbed il-appliance CS50 218 00:13:27,460 --> 00:13:32,300 u dan il-fajl imsejħa CS50.h, li inti kont qed jaqtgħu inkluż għal ġimgħat. 219 00:13:32,300 --> 00:13:34,380 >> Imma ejja attwalment tara x'hemm ġewwa ta 'dan. 220 00:13:34,380 --> 00:13:38,250 Allura l-quċċata tal-fajl fil-blu huwa biss mazz sħiħ ta 'kummenti, 221 00:13:38,250 --> 00:13:41,340 informazzjoni garanzija u l-liċenzjar. Din hija tip ta 'paradigma komuni 222 00:13:41,340 --> 00:13:44,600 fis-software, minħabba ħafna ta 'softwer dawn il-jiem huwa dak li sejjaħ "sors miftuħ," 223 00:13:44,600 --> 00:13:46,940 li jfisser li xi ħadd kiteb il-kodiċi 224 00:13:46,940 --> 00:13:50,060 u għamilha liberament disponibbli, mhux biss biex imexxu u għall-użu, 225 00:13:50,060 --> 00:13:53,660 iżda fil-fatt taqra u tbiddel u jintegraw fil-ħidma tiegħek. 226 00:13:53,660 --> 00:13:55,790 Allura dak hu li inti kont qed tuża, softwer open source, 227 00:13:55,790 --> 00:13:58,030 għalkemm f'forma żgħir ħafna. 228 00:13:58,030 --> 00:14:01,860 Jekk I iscroll passat l-kummenti, għalkemm, aħna ser tibda tara xi affarijiet aktar familjari. 229 00:14:01,860 --> 00:14:08,090 Allura avviż fil-quċċata hawnhekk, li l-fajl CS50.h jinkludi mazz sħiħ ta 'fajls header. 230 00:14:08,090 --> 00:14:11,160 Issa, ħafna minn dawn ma rajniex qabel, iżda wieħed huwa 231 00:14:11,160 --> 00:14:15,640 familjari; liema minn dawn ma rajna, għalkemm fil-qosor, s'issa? 232 00:14:15,640 --> 00:14:18,720 Yeah, libreriji standard. Stdlib.h għandha malloc, 233 00:14:18,720 --> 00:14:21,590 hekk darba bdejna nitkellmu dwar l-allokazzjoni memorja dinamika, 234 00:14:21,590 --> 00:14:24,960 li aħna ser terga 'lura għal ġimgħa d-dieħla kif ukoll, bdejna inkluż dan il-fajl. 235 00:14:24,960 --> 00:14:29,660 Jirriżulta li bool u vera u falza fil-verità ma jeżistux fis-C, fih innifsu, 236 00:14:29,660 --> 00:14:32,460 sakemm inti jinkludu dan il-fajl hawn. 237 00:14:32,460 --> 00:14:35,770 Allura aħna għandna, għal ġimgħat, ġew inklużi standard bool.h 238 00:14:35,770 --> 00:14:39,020 sabiex inti tista 'tuża l-kunċett ta'. bool, vera jew falza 239 00:14:39,020 --> 00:14:41,830 Mingħajr dan, inti għandek sort ta foloz u l-użu ta 'int 240 00:14:41,830 --> 00:14:45,920 u biss arbitrarju wieħed jassumi li hija falza 0 u 1 huwa veru. 241 00:14:45,920 --> 00:14:49,980 >> Issa, jekk aħna iscroll aktar, hawnhekk hija definizzjoni tagħna ta 'sekwenza. 242 00:14:49,980 --> 00:14:54,820 Jirriżulta, kif aħna stajt qal qabel, li fejn dan ikun * ma verament kwistjoni. 243 00:14:54,820 --> 00:14:56,750 Tista 'anki jkollha spazju kollha madwar. 244 00:14:56,750 --> 00:15:01,550 Aħna, dan is-semestru, ġew promozzjoni tagħha kif dan jiġi ċċarat li l-* għandha tagħmel mat-tip. 245 00:15:01,550 --> 00:15:05,370 Iżda realizzata, daqstant komuni, jekk mhux ftit aktar komuni, hu li tqiegħed lilha hemmhekk 246 00:15:05,370 --> 00:15:07,480 iżda funzjonalment huwa l-istess ħaġa. 247 00:15:07,480 --> 00:15:11,070 Imma issa, jekk naqraw tinżel aktar, ejja tagħti ħarsa lejn say, GetInt, 248 00:15:11,070 --> 00:15:15,350 għaliex aħna użati li, forsi, qabel kull ħaġ'oħra dan is-semestru. 249 00:15:15,350 --> 00:15:19,620 U hawn huwa GetInt. Dan huwa dak? 250 00:15:19,620 --> 00:15:24,650 Dan huwa l-prototip. Allura ta 'spiss, aħna poġġew prototipi fuq l-uċuħ ta' tagħna. Fajls c, 251 00:15:24,650 --> 00:15:28,190 imma int tista 'wkoll tpoġġi prototipi fil-fajls header,. fajls h, 252 00:15:28,190 --> 00:15:32,110 bħal dan wieħed hawn, b'tali mod li meta tikteb xi funzjonijiet 253 00:15:32,110 --> 00:15:36,790 li inti tixtieq nies oħra li tkun tista 'tuża, li huwa eżattament il-każ ma' l-librerija CS50, 254 00:15:36,790 --> 00:15:40,900 inti mhux biss jimplimentaw il-funzjonijiet tiegħek fil xi ħaġa simili CS50.c, 255 00:15:40,900 --> 00:15:46,720 inti wkoll tpoġġi l-prototipi mhux fil-quċċata ta 'dan il-fajl, iżda fil-quċċata ta' fajl header, 256 00:15:46,720 --> 00:15:50,810 allura dan il-fajl header huwa dak ħbieb u kollegi jinkludu, 257 00:15:50,810 --> 00:15:52,800 ma jaqtgħu jinkludu fil-kodiċi tagħhom stess. 258 00:15:52,800 --> 00:15:55,440 Allura dan il-ħin li inti ħadthom ġiet inkluża kollha ta 'dawn prototipi 259 00:15:55,440 --> 00:15:59,870 effettivament fil-quċċata tal-fajl tiegħek, imma permezz ta 'dan jaqta' jinkludi mekkaniżmu 260 00:15:59,870 --> 00:16:03,320 li essenzjalment kopji u pejsts din fajl fis tiegħek. 261 00:16:03,320 --> 00:16:06,400 Issa, hawnhekk hija xi dokumentazzjoni pjuttost dettaljata. 262 00:16:06,400 --> 00:16:08,880 >> Imxejna pjuttost ħafna meqjusa illi GetInt gets int, 263 00:16:08,880 --> 00:16:10,740 iżda jirriżulta hemm xi każijiet kantuniera, id-dritt? 264 00:16:10,740 --> 00:16:14,320 X'jiġri jekk l-utent tipi f'numru li l-mod wisq kbar? 265 00:16:14,320 --> 00:16:17,350 A quintillion, li għadha ma jistgħux jitwaħħlu ġewwa ta 'int? 266 00:16:17,350 --> 00:16:21,180 X'inhu l-imġieba mistennija? Ukoll, idealment, huwa prevedibbli. 267 00:16:21,180 --> 00:16:23,460 Allura f'dan il-każ, jekk inti fil-fatt taqra l-istampar multa, 268 00:16:23,460 --> 00:16:27,850 tkun taf tara li jekk il-linja ma tistax tinqara, dan INT_MAX prospetti. 269 00:16:27,850 --> 00:16:30,800 Imxejna qatt tkellem dwar dan, iżda bbażata fuq kapitalizzazzjoni tagħha, 270 00:16:30,800 --> 00:16:33,030 dak li huwa dan, probabbilment? 271 00:16:33,030 --> 00:16:36,610 Huwa kostanti, dan huwa xi kostanti speċjali li probabbilment iddikjarat 272 00:16:36,610 --> 00:16:39,460 f'wieħed minn dawn il-fajls header thats sa ogħla fil-fajl, 273 00:16:39,460 --> 00:16:43,400 u INT_MAX huwa probabbilment xi ħaġa simili, bejn wieħed u ieħor, 2 biljun. 274 00:16:43,400 --> 00:16:48,160 L-idea hija li għaliex għandna bżonn li b'xi mod turi li xi ħaġa marret ħażin, 275 00:16:48,160 --> 00:16:51,090 aħna, iva, għandna 4000000000 numri għad-dispożizzjoni tagħna, 276 00:16:51,090 --> 00:16:53,980 negattiv 2 biljun fuq sa 2 biljun, jagħtu jew jieħu. 277 00:16:53,980 --> 00:16:58,030 Ukoll, dak li huwa komuni fl-ipprogrammar huwa inti steal biss wieħed minn dawk in-numri. 278 00:16:58,030 --> 00:17:02,250 Forsi 0, forsi 2 biljun, forsi negattiv 2 biljun. 279 00:17:02,250 --> 00:17:06,720 Allura inti tqatta wieħed mill-valuri possibbli tiegħek sabiex inti tista jimpenjaw ruħhom li d-dinja 280 00:17:06,720 --> 00:17:10,089 li jekk xi ħaġa tmur ħażin, I se terġa 'lura dan il-valur super-kbar. 281 00:17:10,089 --> 00:17:13,329 Imma inti ma tridx l-utent ittajpjar xi ħaġa cryptic bħal "2, 3, 4 ..." 282 00:17:13,329 --> 00:17:17,079 numru verament kbir, fejn inti tiġġeneralizza minflok bħala kostanti. 283 00:17:17,079 --> 00:17:19,380 Allura verament, jekk inti kienu qed anali-aħħar ftit ġimgħat, 284 00:17:19,380 --> 00:17:23,800 ghaċ inti sejħa GetInt, inti għandek ġew iċċekkjar ma 'kundizzjoni jekk. 285 00:17:23,800 --> 00:17:27,109 Did-tip utent fil INT_MAX, jew b'mod iktar speċifiku, 286 00:17:27,109 --> 00:17:29,900 ma INT_MAX ritorn GetInt? Għaliex jekk hija għamlet, 287 00:17:29,900 --> 00:17:35,140 li effettivament tfisser li huma ma tip li; xi ħaġa li marret ħażin f'dan il-każ. 288 00:17:35,140 --> 00:17:38,970 Allura dan huwa dak li ġeneralment magħrufa bħala "sentinella" valur, li sempliċiment ifisser speċjali. 289 00:17:38,970 --> 00:17:41,020 >> Ukoll, ejja issa għandha ddur b'mod li l-fajls c.. 290 00:17:41,020 --> 00:17:44,500 Il-fajl C ilha teżisti fl-appliance għal xi żmien, 291 00:17:44,500 --> 00:17:47,540 u, fil-fatt, l-apparat għandu dan kkompilat minn qabel għalik 292 00:17:47,540 --> 00:17:49,720 f'dak ħaġa aħna imsejjaħ "kodiċi ta 'oġġett," 293 00:17:49,720 --> 00:17:52,940 iżda hija biss ma jimpurtax li inti fejn huwa għaliex is-sistema jaf, 294 00:17:52,940 --> 00:17:54,780 f'dan il-każ, fejn ikun, l-appliance. 295 00:17:54,780 --> 00:18:00,620 Imma ejja iscroll issa biex GetInt, u tara kif GetInt ilha taħdem dan il-ħin. 296 00:18:00,620 --> 00:18:02,380 Allura hawnhekk għandna kummenti simili minn qabel. 297 00:18:02,380 --> 00:18:04,930 Let me zoom fl fuq biss il-porzjon kodiċi, 298 00:18:04,930 --> 00:18:07,410 u dak li għandna għall GetInt hija din li ġejja. 299 00:18:07,410 --> 00:18:12,770 Huwa jieħu l-ebda input u dan jirritorna int, filwaqt li (veru), hekk aħna loop infinita intenzjonat 300 00:18:12,770 --> 00:18:16,560 iżda, preżumibbilment, aħna ser break out ta 'dan b'xi, jew ir-ritorn minn ġewwa dan. 301 00:18:16,560 --> 00:18:19,890 Mela ejja ara kif taħdem din. Well, we jidhru li qiegħdin jużawh GetString 302 00:18:19,890 --> 00:18:22,550 f'dan il-linja 1 ġewwa l-linja, 166. 303 00:18:22,550 --> 00:18:25,320 Dan issa huwa prattika tajba għaliex taħt liema ċirkostanzi 304 00:18:25,320 --> 00:18:30,820 jista GetString jirritorna din speċjali keyword, NULL? 305 00:18:30,820 --> 00:18:38,460 Jekk xi ħaġa tmur ħażin. Liema jista 'tmur ħażin meta inti sejħa xi ħaġa bħal GetString? 306 00:18:38,460 --> 00:18:42,550 Yeah? [Tweġiba Student, mhux intelliġibbli] >> Yeah. Allura jonqos malloc forsi. 307 00:18:42,550 --> 00:18:45,310 X'imkien minn taħt il-barnuża GetString qed issejjaħ malloc, 308 00:18:45,310 --> 00:18:48,210 li jalloka memorja, li tikri l-maħżen tal-kompjuter 309 00:18:48,210 --> 00:18:50,950 kollha tal-karattri li l-utent tipi fil-keyboard. 310 00:18:50,950 --> 00:18:53,270 U jissoponi l-utent kellhom lott kollu ta 'ħin liberu 311 00:18:53,270 --> 00:18:56,470 u ittajpjat aktar, per eżempju, minn 2 biljun karattri. 312 00:18:56,470 --> 00:18:59,600 Karattri aktar mis-kompjuter anki għandha RAM. 313 00:18:59,600 --> 00:19:02,350 Ukoll, GetString għandha tkun tista 'turi li lilek, 314 00:19:02,350 --> 00:19:05,650 anke jekk din hija, super każ super kantuniera komuni. 315 00:19:05,650 --> 00:19:08,490 Għandu b'xi mod ikunu jistgħu jimmaniġġjaw dan, u hekk GetString, 316 00:19:08,490 --> 00:19:11,850 jekk immorru lura u aqra d-dokumentazzjoni tagħha, ma, fil-fatt, ir-ritorn NULL. 317 00:19:11,850 --> 00:19:16,150 Issa jekk GetString jonqos billi jirritorna NULL, GetInt se jonqsu 318 00:19:16,150 --> 00:19:19,370 billi jirritorna INT_MAX, biss bħala sentinella. 319 00:19:19,370 --> 00:19:22,650 Dawn huma biss konvenzjonijiet tal-bniedem. L-uniku mod inti taf li dan huwa l-każ 320 00:19:22,650 --> 00:19:24,840 huwa billi taqra l-dokumentazzjoni. 321 00:19:24,840 --> 00:19:28,200 Mela ejja iscroll isfel sa fejn l-int fil-fatt GotInt. 322 00:19:28,200 --> 00:19:34,220 >> Mela jekk jien iscroll down a bit aktar, f'konformità 170 għandna kumment fuq dawn il-linji. 323 00:19:34,220 --> 00:19:38,470 Allura aħna tiddikjara, fi 172, ta 'n int u ċ char, u mbagħad din il-funzjoni l-ġdida 324 00:19:38,470 --> 00:19:41,870 li xi wħud minnkom stumbled madwar qabel, iżda sscanf. 325 00:19:41,870 --> 00:19:44,190 Dan stands għall f sekwenza scan. 326 00:19:44,190 --> 00:19:48,580 Fi kliem ieħor, tagħti me a string u jien se scan għall-biċċiet ta 'informazzjoni ta' interess. 327 00:19:48,580 --> 00:19:53,820 Allura dak ma jfisser? Ukoll, ejja ngħidu li jien tip, litteralment, 1 2 3 fuq il-keyboard, 328 00:19:53,820 --> 00:19:59,730 u mbagħad hit jidħol. X'inhu t-tip tad-data tat 1 2 3 meta rritorna minn GetString? 329 00:19:59,730 --> 00:20:05,010 Huwa ovvjament string, id-dritt? Sibt string, hekk 1 2 3 huwa verament "1 2 3" 330 00:20:05,010 --> 00:20:07,260 bil-0 \ fl-aħħar ta 'dan. Dan mhuwiex int. 331 00:20:07,260 --> 00:20:10,420 Li mhux numru. Jidher qisu numru iżda mhux attwalment. 332 00:20:10,420 --> 00:20:14,680 Allura dak li ma GetInt għandek tagħmel? Għandu scan li string xellug għal-lemin, 333 00:20:14,680 --> 00:20:19,010 1 2 3 \ 0, u b'xi mod jaqilbu għall integer attwali. 334 00:20:19,010 --> 00:20:21,010 Issa, inti tista 'figura kif jagħmlu dan. 335 00:20:21,010 --> 00:20:24,240 Jekk taħseb lura għal pset 2, inti preżumibbilment ltqajna ftit komda 336 00:20:24,240 --> 00:20:26,810 ma Caesar jew vigenere sabiex inti tista 'jtenni fuq string, 337 00:20:26,810 --> 00:20:29,800 inti tista 'tikkonverti Chars li ints ma pick. Li l-lott kollu ta 'xogħol. 338 00:20:29,800 --> 00:20:32,800 Għaliex ma sejħa funzjoni bħal sscanf li ma li għalik? 339 00:20:32,800 --> 00:20:37,520 Allura sscanf jistenna argument, f'dan il-każ imsejħa linja, li hija sekwenza. 340 00:20:37,520 --> 00:20:41,310 Inti mbagħad jispeċifikaw, kwotazzjonijiet, simili ħafna għall printf, 341 00:20:41,310 --> 00:20:44,960 dak li tistenna biex tara f'dan string? 342 00:20:44,960 --> 00:20:52,980 Dak li jien qal hawnhekk hija, I jistennew li jaraw numru deċimali u forsi karattru. 343 00:20:52,980 --> 00:20:54,990 U aħna ser tara għaliex dan huwa l-każ fi ftit mument. 344 00:20:54,990 --> 00:20:58,440 Jirriżulta li dan notazzjoni issa huwa reminixxenti ta 'għalf 345 00:20:58,440 --> 00:21:00,840 bdejna nitkellmu dwar ftit aktar minn ġimgħa ilu. 346 00:21:00,840 --> 00:21:05,430 >> X'inhu & nu & c tagħmel għalina hawn? [Tweġibiet Student, mhux intelliġibbli] 347 00:21:05,430 --> 00:21:07,610 >> Yeah. Huwa jagħti me l-indirizz ta 'n u l-indirizz ta' c. 348 00:21:07,610 --> 00:21:10,440 Issa, għaliex huwa importanti li? Ukoll, inti taf li ma 'funzjonijiet fis-C 349 00:21:10,440 --> 00:21:13,440 inti tista 'dejjem terġa' lura għal valur jew l-ebda valur fil-livelli kollha. 350 00:21:13,440 --> 00:21:16,630 Tista 'ritorn ta' int, string, float, a char, tkun xi tkun. 351 00:21:16,630 --> 00:21:21,150 Jew inti tista 'ritorn null, imma int tista' biss jirritorna 1 ħaġa maximally. 352 00:21:21,150 --> 00:21:26,100 Imma hawn irridu sscanf jirritornaw lili forsi int, numru deċimali, 353 00:21:26,100 --> 00:21:29,240 u wkoll. char, u jien ser jispjegaw għaliex il-karatteristiċi fil-mument 354 00:21:29,240 --> 00:21:34,250 Allura inti tixtieq effettivament f jirritornaw 2 affarijiet; li jinsab biss mhux possibbli fid C. 355 00:21:34,250 --> 00:21:38,460 Allura inti tista 'taħdem madwar li billi tgħaddi fi 2-indirizzi, 356 00:21:38,460 --> 00:21:43,710 għaliex malli inti idejn funzjoni 2 indirizzi, dak li jista 'dik il-funzjoni tagħmel magħhom? 357 00:21:43,710 --> 00:21:49,880 Hija tista 'tikteb lill dawk l-indirizzi. Tista 'tuża l-operazzjoni * u "jmorru hemm" għal kull wieħed minn dawk l-indirizzi. 358 00:21:49,880 --> 00:21:54,320 Huwa tip ta 'dan il-mekkaniżmu backdoor, iżda komuni ħafna għat-tibdil tal-valuri tal-varjabbli 359 00:21:54,320 --> 00:21:58,020 f'aktar minn biss 1 post, f'dan il-każ 2. 360 00:21:58,020 --> 00:22:04,590 Issa, l-avviż jien iċċekkjar għall == to1, u mbagħad jirritornaw n jekk dan ma, fil-fatt, tevalwa l-vera. 361 00:22:04,590 --> 00:22:09,340 Allura x'inhu għaddej? Ukoll, teknikament, kollox aħna verament irridu li jiġri GetInt hija din. 362 00:22:09,340 --> 00:22:12,340 Aħna rridu li parse, biex ngħidu hekk, irridu taqra l-sekwenza 363 00:22:12,340 --> 00:22:16,210 "1 2 3" u jekk jidher qisu hemm numru hemmhekk, 364 00:22:16,210 --> 00:22:21,360 dak li aħna qed javżak sscanf tagħmel hu li tpoġġi dan in-numru, 1 2 3, f'din n varjabbli għalija. 365 00:22:21,360 --> 00:22:26,060 Għaliex, mela, ma għandi dan ukoll? 366 00:22:26,060 --> 00:22:33,750 X'inhu r-rwol tal wkoll qal, sscanf, inti tista 'wkoll tikseb karattru hawnhekk. 367 00:22:33,750 --> 00:22:36,890 [Speaking Student, mhux intelliġibbli] >> Mhux - punt deċimali jistgħu jaħdmu. 368 00:22:36,890 --> 00:22:40,650 Ejja istiva li ħasbu għal mument. X'aktar? 369 00:22:40,650 --> 00:22:42,570 [Student, mhux intelliġibbli] >> Allura, ħsibt tajba, jista 'jkun il-karattru NULL. 370 00:22:42,570 --> 00:22:44,970 Huwa fil-fatt mhux, f'dan il-każ. Yeah? [Student, mhux intelliġibbli] 371 00:22:44,970 --> 00:22:47,100 >> >> ASCII. Or, let me tiġġeneralizza anke aktar. 372 00:22:47,100 --> 00:22:49,670 Il c% hemm biss għal żball ta 'verifika. 373 00:22:49,670 --> 00:22:52,510 Aħna ma rridux li jkun hemm karattru wara n-numru, 374 00:22:52,510 --> 00:22:54,980 imma dak li din tippermetti lili biex tagħmel huwa dan li ġej: 375 00:22:54,980 --> 00:23:01,270 Jirriżulta li sscanf, minbarra ħażna valuri nu c, f'dan l-eżempju hawn, 376 00:23:01,270 --> 00:23:08,170 dak li wkoll ma huwa jirritorna l-għadd ta 'varjabbli li tpoġġi valuri pulzieri 377 00:23:08,170 --> 00:23:13,330 Mela jekk inti biss tip fil 1 2 3, allura biss il-% d huwa se jaqblu 378 00:23:13,330 --> 00:23:18,830 u biss n gets maħżuna b'valur bħal 1 2 3 u xejn gets jitqiegħdu c; 379 00:23:18,830 --> 00:23:20,870 c tibqa 'valur żibel, biex ngħidu hekk. 380 00:23:20,870 --> 00:23:23,550 Żibel għaliex dan huwa qatt ma kien initialized bħala xi valur. 381 00:23:23,550 --> 00:23:29,390 Allura f'dak il-każ, sscanf prospetti 1, minħabba I popolati waħda minn dawk pointers, 382 00:23:29,390 --> 00:23:33,650 f'liema każ, kbir. I jkollhom int, so I tilliberalizza l-linja biex tillibera l-memorja 383 00:23:33,650 --> 00:23:37,150 li GetString attwalment allokati, u mbagħad I lura n. 384 00:23:37,150 --> 00:23:42,210 Inkella, jekk inti qatt staqsiet fejn dik id-dikjarazzjoni retry ġej minn, ġej minn dritt hawn. 385 00:23:42,210 --> 00:23:45,770 Jekk, għall-kuntrarju, I tip 1 2 3 foo, 386 00:23:45,770 --> 00:23:48,640 biss ftit sekwenza każwali ta 'test, sscanf se tara, 387 00:23:48,640 --> 00:23:51,500 ooh, numru, ooh, numru, ooh, numru, ooh - f. 388 00:23:51,500 --> 00:23:54,190 U li għaddej biex tpoġġi l-1 2 3 fl n. 389 00:23:54,190 --> 00:23:59,970 Huwa ser tpoġġi l-f fl-ċ, u mbagħad jirritornaw 2. 390 00:23:59,970 --> 00:24:02,980 Allura aħna għandna, biss bl-użu tad-definizzjoni bażika ta 'l-imġiba scanf s, 391 00:24:02,980 --> 00:24:06,170 mod sempliċi ħafna - ukoll, kumpless ewwel daqqa t'għajn, iżda fl-aħħar tal-ġurnata, 392 00:24:06,170 --> 00:24:11,460 mekkaniżmu pjuttost sempliċi ta 'tgħid, hemm xi int, u jekk iva, huwa li l-unika ħaġa li sibt? 393 00:24:11,460 --> 00:24:14,950 U l-ispazju abjad hawnhekk huwa intenzjonat. Jekk taqra d-dokumentazzjoni għall-sscanf, 394 00:24:14,950 --> 00:24:18,690 hija jgħidlek li jekk inti jinkludu biċċa ta 'spazju abjad fil-bidu jew fl-aħħar, 395 00:24:18,690 --> 00:24:24,990 sscanf wisq se jippermettu lill-utent, għal kwalunkwe raġuni, li tolqot spacebar 1 2 3, u li se jkun leġittimu. 396 00:24:24,990 --> 00:24:28,310 Dan mhux se Yell fil-utent sempliċiment għax laqat il-spacebar fil-bidu jew fl-aħħar, 397 00:24:28,310 --> 00:24:32,160 li huwa biss ftit aktar faċli għall-utent. 398 00:24:32,160 --> 00:24:34,160 >> Kwalunkwe mistoqsijiet, imbagħad, fuq GetInts? Yeah? 399 00:24:34,160 --> 00:24:36,820 [Kwistjoni Student, mhux intelliġibbli] 400 00:24:36,820 --> 00:24:40,740 >> Tajba kwistjoni. X'jiġri jekk inti biss ittajpjat fil-char, bħal, f u hit jidħol 401 00:24:40,740 --> 00:24:47,830 mingħajr ma qatt ittajpjar 1 2 3; x'taħseb l-imġiba ta 'din il-linja tal-kodiċi mbagħad ikunu? 402 00:24:47,830 --> 00:24:50,500 Allura sscanf tista 'tkopri li wisq, minħabba li f'dak il-każ, 403 00:24:50,500 --> 00:24:56,280 mhuwiex ser timla n jew c, li għaddej biex minflok jirritornaw 0. 404 00:24:56,280 --> 00:25:01,540 F'liema każ, jien ukoll qbid li x-xenarju, minħabba li l-valur mistenni nixtieq huwa 1. 405 00:25:01,540 --> 00:25:07,310 I jridux biss 1, u biss 1 ħaġa li għandha timtela. Good kwistjoni. Oħrajn? 406 00:25:07,310 --> 00:25:09,610 >> Kull dritt, so let mhuwiex jgħaddu kollha tal-funzjonijiet hawn, 407 00:25:09,610 --> 00:25:11,820 iżda l-waħda li jidher li jkun, forsi, ta 'interess baqa 408 00:25:11,820 --> 00:25:14,530 huwa GetString minħabba li jirriżulta li GetFloat, GetInt, 409 00:25:14,530 --> 00:25:19,490 GetDouble, GetLongLong kollha Punt ħafna ta 'funzjonalità tagħhom li GetString. 410 00:25:19,490 --> 00:25:22,860 Mela ejja tagħti ħarsa lejn kif huwa implementat hawnhekk. 411 00:25:22,860 --> 00:25:27,040 Dan wieħed jistenna kumpless ftit imma dan juża l-elementi fundamentali istess 412 00:25:27,040 --> 00:25:29,680 li bdejna nitkellmu ġimgħa li għaddiet. Għalhekk fl GetString, 413 00:25:29,680 --> 00:25:32,670 li tieħu l-ebda argument bħala kull l-vojt up hawn, 414 00:25:32,670 --> 00:25:37,110 u dan jirritorna string; so I am tiddikjara string imsejjaħ buffer. 415 00:25:37,110 --> 00:25:39,670 I ma verament jafu dak li għaddej biex jintużaw għal għada, iżda Ser naraw. 416 00:25:39,670 --> 00:25:42,950 Jistenna bħall-kapaċità hija, fil-kontumaċja, 0; ma pjuttost ċert fejn dan ikun għaddej. 417 00:25:42,950 --> 00:25:44,920 Mhux ċert liema n għaddej biex jintużaw għall s'issa. 418 00:25:44,920 --> 00:25:47,860 Imma issa huwa jkollna ftit aktar interessanti, hekk f'konformità 243, 419 00:25:47,860 --> 00:25:51,760 aħna tiddikjara ċ int, dan huwa tip ta 'dettall stupid. 420 00:25:51,760 --> 00:25:58,080 A char huwa 8 bits, u 8 bits jista 'jaħżen kemm valuri differenti? 421 00:25:58,080 --> 00:26:03,310 256. Il-problema hija, jekk inti tixtieq li jkollok 256 karattri ASCII differenti, 422 00:26:03,310 --> 00:26:06,210 li hemm, jekk taħseb lura, u dan mhux xi ħaġa li memorize. 423 00:26:06,210 --> 00:26:09,100 Imma jekk inti taħseb lura għal dak chart ASCII big kellna ġimgħat ilu, 424 00:26:09,100 --> 00:26:13,780 kien hemm, f'dak il-każ, 128 jew 256 karattri ASCII. 425 00:26:13,780 --> 00:26:16,220 Aħna użati l-mudelli ta 'l-0 u 1 tal-up. 426 00:26:16,220 --> 00:26:19,410 Li l-problema jekk inti tixtieq li tkun kapaċi jikxef żball. 427 00:26:19,410 --> 00:26:23,290 Għaliex jekk int diġà tuża 256 Valuri għall-karattri tiegħek, 428 00:26:23,290 --> 00:26:26,390 inti ma verament tippjana għal quddiem, għaliex issa ikollok ebda mod ta 'tgħid, 429 00:26:26,390 --> 00:26:29,750 "Din mhix karattru leġittimu; din hija xi messaġġ żbaljat." 430 00:26:29,750 --> 00:26:32,430 Allura dak id-dinja ma huwa, huma jużaw il-valur li jmiss akbar, 431 00:26:32,430 --> 00:26:35,790 xi ħaġa bħal int hekk li għandek numru ta 'bits crazy, 432 00:26:35,790 --> 00:26:39,610 32 għal 4000000000 valuri possibbli, sabiex inti tista 'sempliċement tispiċċa bl-użu, 433 00:26:39,610 --> 00:26:44,800 essenzjalment, 257 minnhom, 1 li għandha xi tifsira speċjali bħala żball. 434 00:26:44,800 --> 00:26:49,190 >> Mela ejja ara kif taħdem din. F'konformità 246, għandi din loop filwaqt big 435 00:26:49,190 --> 00:26:54,530 li qed issejjaħ fgetc; tifsira f fajl, getc, u mbagħad stdin. 436 00:26:54,530 --> 00:26:59,030 Jinstabx li dan huwa biss il-mod aktar preċiż ta 'tgħid "aqra input mill-keyboard." 437 00:26:59,030 --> 00:27:02,730 Standard keyboard mezz input, output standard ifisser iskrin, 438 00:27:02,730 --> 00:27:06,920 u żball standard, li aħna ser tara fil pset 4, tfisser l-iskrin, 439 00:27:06,920 --> 00:27:09,670 iżda parti speċjali tal-iskrin sabiex li mhuwiex conflated 440 00:27:09,670 --> 00:27:13,760 bi produzzjoni attwali li inti maħsuba biex jistampaw; iżda aktar fuq li fil-futur. 441 00:27:13,760 --> 00:27:19,430 Allura fgetc ifisser biss aqra karattru wieħed mill-keyboard, u jaħżnu fejn? 442 00:27:19,430 --> 00:27:24,000 Aħżen fil ċ, u mbagħad tiċċekkja, hekk jien biss jużaw xi konġunzjonijiet Boolean hawn, 443 00:27:24,000 --> 00:27:28,430 jivverifikaw li dan ma jkunx ugwali \ n, sabiex l-utent ikun hit jidħol. 444 00:27:28,430 --> 00:27:31,510 Aħna tixtieq li twaqqaf f'dak il-punt, tmiem tal-linja, u aħna wkoll jridu jiċċekkjaw 445 00:27:31,510 --> 00:27:36,170 għall-kostanti speċjali, EOF, li jekk taf jew raden - dak ma toqgħod għal? 446 00:27:36,170 --> 00:27:39,860 Tmiem tal-fajl. Allura dan huwa tip ta 'jagħmel ebda sens, minħabba li jekk jien ittajpjar fuq it-tastiera, 447 00:27:39,860 --> 00:27:41,900 hemm verament ebda fajl involuti f'dan, 448 00:27:41,900 --> 00:27:44,330 iżda dan huwa biss tip tat-terminu ġeneriku użat biex ifisser 449 00:27:44,330 --> 00:27:50,320 li xejn ikun ġej minn swaba tal-bniedem tal-. EOF. Tmiem tal-fajl. 450 00:27:50,320 --> 00:27:52,600 Bħala twarrib, jekk inti stajt qatt hit kontroll d fil-tastiera tiegħek, 451 00:27:52,600 --> 00:27:54,680 mhux li inti għadhom, inti ħadthom hit kontroll c. 452 00:27:54,680 --> 00:27:57,920 Iżda l-kontroll d jibgħat din speċjali EOF kostanti imsejħa. 453 00:27:57,920 --> 00:28:03,100 >> Allura issa aħna biss għandhom xi allokazzjoni memorja dinamika. 454 00:28:03,100 --> 00:28:06,460 Mela jekk n + 1> kapaċità, issa jien ser jispjegaw n. 455 00:28:06,460 --> 00:28:09,380 n huwa kemm ħafna bytes bħalissa qegħdin fil-buffer, 456 00:28:09,380 --> 00:28:11,970 l-sekwenza li int bħalissa bini mill-utent. 457 00:28:11,970 --> 00:28:16,240 Jekk għandek karattri aktar fil buffer tiegħek milli għandek kapaċità fil-buffer, 458 00:28:16,240 --> 00:28:20,760 intuwittivament, dak li rridu nagħmlu allura hu jalloka aktar kapaċità. 459 00:28:20,760 --> 00:28:24,490 Jien ser skim fuq xi wħud mill-aritmetika hawn 460 00:28:24,490 --> 00:28:26,900 u jiffoka biss fuq din il-funzjoni hawn. 461 00:28:26,900 --> 00:28:29,170 Inti taf huwa malloc dak, jew għall-inqas b'mod ġenerali familjari. 462 00:28:29,170 --> 00:28:32,380 Ħu raden ma realloc dak. [Tweġiba Student, mhux intelliġibbli] 463 00:28:32,380 --> 00:28:35,690 >> Yeah. U huwa pjuttost mhux żżid memorja, hi reallocates memorja kif ġej: 464 00:28:35,690 --> 00:28:40,530 Jekk ikun hemm għadu kamra fl-aħħar tas-sekwenza biex jagħtuk aktar ta 'dak memorja 465 00:28:40,530 --> 00:28:43,370 milli oriġinarjament tagħtik, allura inti ser tingħata li l-memorja addizzjonali. 466 00:28:43,370 --> 00:28:46,640 Allura inti tista 'sempliċement tqegħid l-karattri kordi lura lura lura lura. 467 00:28:46,640 --> 00:28:49,290 Imma jekk dan mhux il-każ, għaliex inti stenniet twil wisq 468 00:28:49,290 --> 00:28:51,700 u xi ħaġa każwali ltqajna plopped fil-memorja hemmhekk, iżda hemm żejjed 469 00:28:51,700 --> 00:28:56,480 memorja stabbiliti hawn, li okay. Realloc se jagħmlu l-irfigħ għalik, 470 00:28:56,480 --> 00:28:58,810 jċaqalqu l-sekwenza li inti stajt taqra fil s'issa minn hawn, 471 00:28:58,810 --> 00:29:02,550 poġġih stabbiliti hemmhekk, u mbagħad jagħtuk runway ftit aktar f'dak il-punt. 472 00:29:02,550 --> 00:29:05,610 Allura bil-mewġa ta 'l-idejn, ħalluni ngħid li dak li qed tagħmel GetString 473 00:29:05,610 --> 00:29:09,540 huwa huwa li tibda bi buffer żgħir, forsi 1 karattru wieħed, 474 00:29:09,540 --> 00:29:12,300 u jekk l-utent tipi fi 2 karattri, GetString jispiċċa 475 00:29:12,300 --> 00:29:15,210 sejħa realloc u jgħid, "Ooh, 1-karattru ma kienx biżżejjed. 476 00:29:15,210 --> 00:29:18,480 Agħti me 2 karattri. " Imbagħad jekk inti taqra permezz tal-loġika tal-linja, 477 00:29:18,480 --> 00:29:21,070 li għaddej biex jgħidu, "Ooh, l-utent ittajpjat fi 3 karattri. 478 00:29:21,070 --> 00:29:25,690 Agħti me issa mhux 2 iżda 4 karattri, allura agħti lili 8, allura agħti lili 16 u 32. " 479 00:29:25,690 --> 00:29:28,180 Il-fatt li jien irduppjar tal-kapaċità kull darba 480 00:29:28,180 --> 00:29:30,320 ifisser li l-buffer mhux se jikbru bil-mod. 481 00:29:30,320 --> 00:29:35,870 Huwa ser jikbru super fast, u dak li jista 'jkun il-vantaġġ ta' dan? 482 00:29:35,870 --> 00:29:38,540 Why am I irduppjar-daqs tal-buffer, anki jekk l-utent 483 00:29:38,540 --> 00:29:41,450 jista 'biss bżonn 1 karattru żejda mill-keyboard? 484 00:29:41,450 --> 00:29:44,830 [Student tweġiba, mhux intelliġibbli]. >> X'hemm li? 485 00:29:44,830 --> 00:29:46,750 Eżattament. Inti ma għandekx biex jikbru bħala spiss. 486 00:29:46,750 --> 00:29:48,870 U dan huwa biss tip ta '- you're hedging imħatri tiegħek hawn. 487 00:29:48,870 --> 00:29:54,150 L-idea hija li inti ma tridx li sejħa realloc ħafna, minħabba li hemm tendenza li jkun bil-mod. 488 00:29:54,150 --> 00:29:56,840 Kwalunkwe ħin li inti titlob lill-sistema operattiva għall-memorja, kif tkun taf hekk ara 489 00:29:56,840 --> 00:30:00,620 f'sett problema fil-futur, li għandha tendenza li tieħu ftit ħin. 490 00:30:00,620 --> 00:30:04,980 Allura timminimizza dak l-ammont ta 'żmien, anki jekk int wasting xi spazju, tendenza li tkun ħaġa tajba. 491 00:30:04,980 --> 00:30:07,250 >> Imma jekk aħna tinqara minn ġol-parti finali ta 'GetString hawn, 492 00:30:07,250 --> 00:30:10,880 u għal darb'oħra, fehim kull linja waħda hawn mhix daqshekk importanti llum. 493 00:30:10,880 --> 00:30:14,830 Iżda avviż li eventwalment tappella malloc mill-ġdid, u dan jalloka 494 00:30:14,830 --> 00:30:16,980 eżattament kif bytes ħafna kif jeħtieġ l-sekwenza 495 00:30:16,980 --> 00:30:21,620 u mbagħad throws bogħod billi ċċempel b'xejn, il-buffer eċċessivament kbar, 496 00:30:21,620 --> 00:30:23,510 jekk tabilħaqq ltqajna rdoppja wisq drabi. 497 00:30:23,510 --> 00:30:25,970 Fil-qosor, li kif GetString ilha taħdem dan il-ħin. 498 00:30:25,970 --> 00:30:30,100 Kull ma jinqara karattru wieħed fi żmien ġdid u għal darb'oħra u għal darb'oħra 499 00:30:30,100 --> 00:30:37,930 u kull darba li jeħtieġ xi memorja addizzjonali, huwa jitlob lill-sistema operattiva għal dan billi ċċempel realloc. 500 00:30:37,930 --> 00:30:41,660 Kwalunkwe mistoqsijiet? Kull dritt. 501 00:30:41,660 --> 00:30:45,220 >> Attakk. Issa li aħna nifhmu pointers, jew għall-inqas 502 00:30:45,220 --> 00:30:47,560 huma dejjem aktar familjari ma 'pointers, 503 00:30:47,560 --> 00:30:50,020 ejja tikkunsidra kif id-dinja kollha jibda kollass 504 00:30:50,020 --> 00:30:53,160 jekk inti ma pjuttost jiddefendu kontra l-utenti kontradittorji, 505 00:30:53,160 --> 00:30:55,180 nies li qed jippruvaw Hack fis-sistema tiegħek. 506 00:30:55,180 --> 00:31:00,260 Nies li qed jippruvaw steal software tiegħek billi tevita xi kodiċi ta 'reġistrazzjoni 507 00:31:00,260 --> 00:31:02,150 li kieku kienu għandek tip pulzieri 508 00:31:02,150 --> 00:31:04,860 Agħti ħarsa lejn dan l-eżempju hawn, li huwa biss il-kodiċi C 509 00:31:04,860 --> 00:31:07,920 li għandu funzjoni ewlenija fil-qiegħ, li s-sejħiet funzjoni foo, 510 00:31:07,920 --> 00:31:12,100 u għalxiex tgħaddi lill foo? [Student] Argument wieħed. 511 00:31:12,100 --> 00:31:15,660 >> Uniku argument. Allura ARGV [1], li jfisser l-ewwel kelma l-utent ittajpjat 512 00:31:15,660 --> 00:31:19,150 fil-linja tal-kmand wara a.out jew ikun x'ikun l-programm huwa msejjaħ. 513 00:31:19,150 --> 00:31:24,920 Allura foo, fil-quċċata, jieħu fil-* char, iżda * char huwa biss dak? 514 00:31:24,920 --> 00:31:28,860 String. M'hemm xejn ġdid hawn, u li string qed arbitrarjament qed jissejjaħ bar. 515 00:31:28,860 --> 00:31:36,090 F'dan il-linja hawn, char ċ [12], fil-tip ta 'semi-teknika Ingliż, dak li huwa din il-linja tagħmel? 516 00:31:36,090 --> 00:31:40,640 Array ta '-? Karattri. Agħti me firxa ta '12-il karattru. 517 00:31:40,640 --> 00:31:44,970 Allura nistgħu sejħa dan buffer. Huwa teknikament jissejjaħ c, ​​iżda buffer fil-programmazzjoni 518 00:31:44,970 --> 00:31:47,890 ifisser biss mazz ta 'spazju li inti tista' tpoġġi xi Jittieħed pulzieri 519 00:31:47,890 --> 00:31:49,940 >> Imbagħad fl-aħħar, memcpy, konna mhux użat qabel. 520 00:31:49,940 --> 00:31:52,380 Iżda int tista 'probabbilment raden dak li tagħmel. Hija kopji memorja. 521 00:31:52,380 --> 00:31:58,790 X'tikkontrolla do? Ukoll, huwa apparentement kopji bar, input tagħha, fis c, 522 00:31:58,790 --> 00:32:03,420 iżda biss sa l-tul ta 'bar. 523 00:32:03,420 --> 00:32:07,440 Iżda hemm bug hawn. 524 00:32:07,440 --> 00:32:14,500 Okay, hekk teknikament għandna verament strlen (bar) x sizeof (char), li l-korretta. 525 00:32:14,500 --> 00:32:17,920 Iżda fl-agħar każ hawnhekk, ejja nassumu li that's - hekk, okay. 526 00:32:17,920 --> 00:32:23,760 Imbagħad hemm 2 bugs. Allura sizeof (char), id-dritt, ejja jagħmlu dan ftit aktar wiesa '. 527 00:32:23,760 --> 00:32:28,860 Allura issa hemm għadu bug, li huwa dak? 528 00:32:28,860 --> 00:32:31,630 [Tweġiba Student, mhux intelliġibbli] Iċċekkja >> għal liema? Okay, hekk aħna għandu jiġi verifikat 529 00:32:31,630 --> 00:32:35,010 għall NULL, minħabba affarijiet ħżiena jiġri meta pointer tiegħek huwa NULL, 530 00:32:35,010 --> 00:32:38,490 Għaliex inti tista 'tispiċċa tmur hemmhekk, u inti ma għandu qatt ikun ser null 531 00:32:38,490 --> 00:32:40,890 billi dereferencing ma 'l-operatur *. 532 00:32:40,890 --> 00:32:45,250 Allura dak tajba, u x'iktar li qed nagħmlu? Loġikament hemm difett hawnhekk ukoll. 533 00:32:45,250 --> 00:32:47,650 [Tweġiba Student, mhux intelliġibbli] 534 00:32:47,650 --> 00:32:51,340 >> Sabiex jiċċekkjaw jekk argc ≥ 2? 535 00:32:51,340 --> 00:32:54,130 Okay, hekk hemm 3 bugs f'dan il-programm hawn. 536 00:32:54,130 --> 00:33:00,080 Aħna ma iċċekkjar jekk l-utent fil-fatt ittajpjat fil xejn fil ARGV [1], tajba. 537 00:33:00,080 --> 00:33:02,240 Allura x'inhu l-bug terz? Yeah? 538 00:33:02,240 --> 00:33:04,420 [Tweġiba Student, mhux intelliġibbli] >> Tajba. 539 00:33:04,420 --> 00:33:09,590 Allura aħna ċċekkjati xenarju wieħed. We impliċitament ċċekkjati ma kopja memorja aktar 540 00:33:09,590 --> 00:33:12,800 milli kieku jaqbeż it-tul ta 'bar. 541 00:33:12,800 --> 00:33:15,720 Allura jekk il-sekwenza l-utent ittajpjat fil hija 10 karattri fit-tul, 542 00:33:15,720 --> 00:33:18,260 dan huwa qal, "Huwa biss kopja 10 karattri." 543 00:33:18,260 --> 00:33:21,140 U li okay, imma dak jekk l-utent ittajpjat fil-kelma fil-pront 544 00:33:21,140 --> 00:33:29,360 bħal kelma karattru 20; dan huwa, qal kopja 20 karattru mill-bar fil dak? 545 00:33:29,360 --> 00:33:32,840 c, magħrufa wkoll bħala buffer tagħna, li jfisser li inti biss kiteb data 546 00:33:32,840 --> 00:33:35,950 sa 8 postijiet byte li inti ma stess, 547 00:33:35,950 --> 00:33:38,320 u inti ma proprji minnhom fis-sens li int qatt ma allokat lilhom. 548 00:33:38,320 --> 00:33:41,190 Allura dan huwa dak li ġeneralment magħrufa bħala l-attakk overflow buffer, 549 00:33:41,190 --> 00:33:46,650 jew buffer attakk overrun, u attakk huwa fis-sens li jekk l-utent 550 00:33:46,650 --> 00:33:50,650 jew il-programm li l-sejħa funzjoni tiegħek qed tagħmel dan b'mod malizzjuż, 551 00:33:50,650 --> 00:33:53,780 x'inhu dak li attwalment jiġri li jmiss jista 'jkun pjuttost ħażina. 552 00:33:53,780 --> 00:33:55,690 >> Ejja tagħti ħarsa lejn din l-istampa hawn. 553 00:33:55,690 --> 00:33:59,070 Din l-istampa jirrappreżenta munzell tiegħek ta 'memorja. 554 00:33:59,070 --> 00:34:01,050 U ifakkar li kull darba li inti sejħa funzjoni, 555 00:34:01,050 --> 00:34:04,520 ikollok dan il-qafas ftit fuq il-munzell u mbagħad ieħor u mbagħad ieħor u mbagħad ieħor. 556 00:34:04,520 --> 00:34:07,250 U s'issa konna biss tip ta 'estratt dawn bogħod kif rettangoli 557 00:34:07,250 --> 00:34:09,380 jew hemm fuq il-bord jew fuq l-iskrin hawn. 558 00:34:09,380 --> 00:34:12,219 Imma jekk aħna zoom fl fuq waħda minn dawk rettangoli, 559 00:34:12,219 --> 00:34:16,460 meta inti sejħa funzjoni foo, jirriżulta li hemm aktar fuq il-munzell 560 00:34:16,460 --> 00:34:18,739 ġewwa ta 'dak il-qafas u dak ir-rettangolu 561 00:34:18,739 --> 00:34:23,370 minn sempliċiment xuy u aub, bħal aħna ma jitkellem dwar swap. 562 00:34:23,370 --> 00:34:25,949 Jirriżulta li hemm xi dettalji aktar baxxi ta 'livell, 563 00:34:25,949 --> 00:34:27,780 fosthom ritorn indirizz. 564 00:34:27,780 --> 00:34:33,020 Allura jirriżulta meta jitlob prinċipali foo, prinċipali għandu jinforma foo 565 00:34:33,020 --> 00:34:36,760 dak l-indirizz prinċipali huwa fil-memorja tal-kompjuter. 566 00:34:36,760 --> 00:34:40,659 Minħabba xort'oħra, hekk kif foo isir eżekuzzjoni, bħal f'dan il-każ hawnhekk, 567 00:34:40,659 --> 00:34:43,790 ladarba inti tilħaq dan Brace kaboċċi qrib fl-aħħar ta 'foo, 568 00:34:43,790 --> 00:34:48,860 kif l-Heck ma foo taf fejn kontroll tal-programm suppost imorru? 569 00:34:48,860 --> 00:34:52,460 Jirriżulta li r-risposta għal din id-domanda hija fl-dak ir-rettangolu aħmar hawn. 570 00:34:52,460 --> 00:34:56,130 Dan jirrappreżenta pointer, u huwa f'idejn l-kompjuter biex jaħżnu, temporanjament, 571 00:34:56,130 --> 00:35:00,250 fuq il-munzell hekk imsejħa l-indirizz ta 'mejn sabiex l malli foo isir eżekuzzjoni, 572 00:35:00,250 --> 00:35:04,110 il-kompjuter jaf fejn u liema linja ewlenija li jmorru lura għall. 573 00:35:04,110 --> 00:35:06,900 Pointer qafas Ssejvjata tirrigwarda b'mod simili għal dan. 574 00:35:06,900 --> 00:35:09,620 * Char bar hawn jirrappreżenta dak? 575 00:35:09,620 --> 00:35:14,740 Well, issa dan is-segment blu hawnhekk huwa qafas foo, dak li hu bar? 576 00:35:14,740 --> 00:35:18,300 Okay, hekk bar huwa biss l-argument li l-funzjoni foo. 577 00:35:18,300 --> 00:35:20,720 >> Allura issa aħna qed lura lejn l-istampa familjari. 578 00:35:20,720 --> 00:35:22,960 Hemm Jittieħed aktar u distrazzjonijiet aktar fuq l-iskrin 579 00:35:22,960 --> 00:35:27,490 iżda dan is-segment blu dawl huwa dak li aħna kont qed tpinġija fuq il-chalkboard għal xi ħaġa bħal tpartit. 580 00:35:27,490 --> 00:35:31,890 Dan huwa l-qafas għall foo u l-unika ħaġa fil dan id-dritt issa huwa bar, 581 00:35:31,890 --> 00:35:34,630 li huwa dan il-parametru. 582 00:35:34,630 --> 00:35:39,840 Imma dak li inkella għandhom ikunu fil-munzell, skond dan il-kodiċi hawn? 583 00:35:39,840 --> 00:35:44,280 Char ċ [12]. Allura għandna wkoll tara 12 kwadri ta 'memorja, 584 00:35:44,280 --> 00:35:46,260 allokata lil varjabbli imsejjaħ c. 585 00:35:46,260 --> 00:35:48,340 U fil-fatt aħna jkollhom li fuq l-iskrin. 586 00:35:48,340 --> 00:35:51,650 Il-quċċata hemm ć [0], u allura l-awtur ta 'dan dijagramma 587 00:35:51,650 --> 00:35:55,130 ma jolqot tfassil kollha tal-kwadrati iżda hemm tabilħaqq 12 hemm 588 00:35:55,130 --> 00:36:00,120 għaliex jekk inti tħares lejn il-lemin tal-qiegħ, c [11], jekk inti għadd minn 0, huwa l-bytes 12 bħal dawn. 589 00:36:00,120 --> 00:36:06,190 Iżda hawn l-problema: F'liema direzzjoni qed c jikber? 590 00:36:06,190 --> 00:36:10,390 Sort ta 'top down, id-dritt? Jekk jibda fil-quċċata u tikber sal-qiegħ, 591 00:36:10,390 --> 00:36:13,480 ma look like we xellug nfusna runway ħafna hawn fil-livelli kollha. 592 00:36:13,480 --> 00:36:15,320 Imxejna tip ta 'miżbugħa lilna nfusna fis-kantuniera, 593 00:36:15,320 --> 00:36:20,210 u li ċ [11] huwa dritt up kontra bar, li huwa dritt up kontra pointer qafas munzell, 594 00:36:20,210 --> 00:36:23,800 li huwa dritt up kontra l-indirizz ta 'ritorn; hemm lok mhux aktar. 595 00:36:23,800 --> 00:36:26,100 Allura x'inhu l-implikazzjoni, allura, jekk inti screw up, 596 00:36:26,100 --> 00:36:30,460 u inti tipprova qari 20 bytes ġo buffer 12-byte? 597 00:36:30,460 --> 00:36:33,460 Fejn huma dawk bytes 8 addizzjonali se jmorru? 598 00:36:33,460 --> 00:36:36,370 Ġewwa kull ħaġa oħra, li wħud minnhom huwa super importanti. 599 00:36:36,370 --> 00:36:40,480 U l-aktar ħaġa importanti, potenzjalment, huwa l-kaxxa aħmar hemmhekk, l-indirizz tar-ritorn. 600 00:36:40,480 --> 00:36:44,720 Minħabba jissoponi li inti jew aċċidentalment jew kontradittorju 601 00:36:44,720 --> 00:36:48,040 jissostitwixxu dawk bytes 4, li jindirizzaw pointer, 602 00:36:48,040 --> 00:36:53,190 mhux biss ma żibel, iżda b'numru li jiġri li jirrappreżentaw indirizz attwali fil-memorja? 603 00:36:53,190 --> 00:36:55,930 X'hemm-implicaiton, loġikament? 604 00:36:55,930 --> 00:36:59,080 [Tweġibiet Student, mhux intelliġibbli] >> Eżattament. Meta foo prospetti 605 00:36:59,080 --> 00:37:03,560 u hits li Brace kaboċċi, il-programm se tipproċedi ma tirritornax prinċipali, 606 00:37:03,560 --> 00:37:08,320 li għaddej biex jirritornaw għall xi indirizz f'dik il-kaxxa aħmar. 607 00:37:08,320 --> 00:37:11,560 >> Issa, fil-każ ta 'reġistrazzjoni ta' softwer jevita, 608 00:37:11,560 --> 00:37:14,400 dak li huwa l-indirizz li l-jiġu ritornati lill ikun il-funzjoni 609 00:37:14,400 --> 00:37:18,820 li normalment gets imsejħa wara li tkun ħadthom imħallas għall-software u inputted kodiċi ta 'reġistrazzjoni tiegħek? 610 00:37:18,820 --> 00:37:23,160 Inti tista sort ta trick-kompjuter fis jkunux sejrin hawnhekk, imma minflok, tmur up here. 611 00:37:23,160 --> 00:37:27,950 Jew, jekk int verament għaqlija, avversarju jistgħu attwalment tip fl fuq il-keyboard, 612 00:37:27,950 --> 00:37:32,500 per eżempju, ma kelma attwali, mhux 20 karattri, iżda jissoponi hu jew hi 613 00:37:32,500 --> 00:37:36,200 tipi f'xi karattri li jirrappreżentaw kodiċi? 614 00:37:36,200 --> 00:37:38,860 U huwa mhux ser ikun kodiċi C, li għaddej biex tkun il-karattri 615 00:37:38,860 --> 00:37:42,920 li jirrappreżenta magna kodiċi binarju, taċ 0 u 1 ta. 616 00:37:42,920 --> 00:37:46,740 Imma ejja ngħidu li qed għaqlija biżżejjed biex tagħmel dan, li b'xi mod paste fil-pront GetString 617 00:37:46,740 --> 00:37:49,460 xi ħaġa li hija essenzjalment miġbura kodiċi, 618 00:37:49,460 --> 00:37:56,900 u l-aħħar 4 bytes jissostitwixxu dak l-indirizz tar-ritorn, u dak l-indirizz ma li input tagħmel? 619 00:37:56,900 --> 00:38:01,860 Taħżen f'dan rettangolu aħmar l-indirizz ta 'l-ewwel byte tal-buffer. 620 00:38:01,860 --> 00:38:04,270 Allura inti għandek tkun verament għaqlija, u dan huwa ħafna ta 'prova u żball 621 00:38:04,270 --> 00:38:08,500 għal nies ħżiena hemmhekk, imma jekk inti tista figura kif big dan buffer hija, 622 00:38:08,500 --> 00:38:12,170 tali li l-bytes aħħar ftit fl-input li inti tipprovdi għall-programm 623 00:38:12,170 --> 00:38:15,970 jiġri li jkun ekwivalenti għall-indirizz tal-bidu tal-buffer tiegħek, 624 00:38:15,970 --> 00:38:22,270 inti tista 'tagħmel dan. Jekk aħna ngħidu, normalment, bonjour, u \ 0, dan huwa dak jispiċċa fil-buffer. 625 00:38:22,270 --> 00:38:27,860 Imma jekk aħna qed aktar għaqlija, u aħna imla l buffer ma 'dak li aħna ser ġenerikament sejħa kodiċi attakk, 626 00:38:27,860 --> 00:38:31,920 A, A, A, A: Attakk,, attakk attakk, attakk, fejn din hija biss xi ħaġa li ma xi ħaġa ħażina. 627 00:38:31,920 --> 00:38:35,190 Ukoll, dak li jiġri jekk int verament għaqlija, inti tista 'tagħmel dan: 628 00:38:35,190 --> 00:38:41,740 Fil-kaxxa aħmar hawnhekk hija sekwenza ta 'numri: 80, CO, 35, 08. 629 00:38:41,740 --> 00:38:44,890 Avviż li dan jaqbel man-numru li l-up here. 630 00:38:44,890 --> 00:38:47,280 Huwa fl-ordni invers, iżda aktar fuq li xi żmien ieħor. 631 00:38:47,280 --> 00:38:51,430 Avviż li dan l-indirizz tar-ritorn ġie deliberatament mibdula 632 00:38:51,430 --> 00:38:54,970 li hija daqs l-indirizz up hawn, mhux l-indirizz ta 'prinċipali. 633 00:38:54,970 --> 00:39:00,170 Allura jekk il-Guy ħażina hija super intelliġenti, hu jew hi se jinkludu f'dak il-kodiċi attakk 634 00:39:00,170 --> 00:39:02,890 xi ħaġa simili, "Ħassar kollha tal-fajls l-utent." 635 00:39:02,890 --> 00:39:06,320 Jew "Ikkopja l-passwords," jew "Oħloq kont ta 'utent li nista' log fis." 636 00:39:06,320 --> 00:39:10,130 Xejn fil-livelli kollha, u dan huwa kemm il-periklu u l-qawwa ta 'C. 637 00:39:10,130 --> 00:39:12,900 Minħabba ikollok aċċess għall-memorja permezz pointers 638 00:39:12,900 --> 00:39:15,950 u inti tista 'għalhekk tikteb xi ħaġa li trid fil-memorja tal-kompjuter. 639 00:39:15,950 --> 00:39:19,290 Inti tista 'tagħmel il-kompjuter do xi ħaġa li trid sempliċiment billi 640 00:39:19,290 --> 00:39:22,780 wara li dan jaqbżu madwar ġewwa l-ispazju tiegħu memorja stess. 641 00:39:22,780 --> 00:39:27,230 U hekk, din il-ġurnata, sabiex ħafna programmi u websajts tant li huma kompromessi 642 00:39:27,230 --> 00:39:29,730 jsarrafx biss fl-nies jieħdu vantaġġ ta 'dan. 643 00:39:29,730 --> 00:39:32,510 U dan jista 'jidher bħala attakk super-sofistikati, 644 00:39:32,510 --> 00:39:34,220 iżda dan mhux dejjem tibda il-mod. 645 00:39:34,220 --> 00:39:36,770 >> Ir-realtà hi li dak in-nies ħżiena se tipikament do hija, 646 00:39:36,770 --> 00:39:41,470 jekk huwa programm fuq linja ta 'kmand jew programm GUI jew websajt, 647 00:39:41,470 --> 00:39:43,290 huwa inti biss jibda jipprovdi nonsense. 648 00:39:43,290 --> 00:39:46,940 Inti tip fil-kelma verament kbir fil-qasam tat-tiftix u hit jidħol, 649 00:39:46,940 --> 00:39:49,030 u inti tistenna biex tara jekk il-crashes websajt. 650 00:39:49,030 --> 00:39:53,270 Jew inti tistenna biex tara jekk il-programm timmanifesta xi messaġġ ta 'żball. 651 00:39:53,270 --> 00:39:55,480 Għaliex jekk ikollok xortik tajba, bħala l-ħżiena Guy, 652 00:39:55,480 --> 00:39:59,610 u inti tipprovdi xi kontribut crazy li ġġarrfu-programm, 653 00:39:59,610 --> 00:40:02,280 li tfisser l-programmer ma tantiċipa imġieba ħażina tiegħek 654 00:40:02,280 --> 00:40:05,420 li jfisser li inti tista 'probabbilment, bi sforz biżżejjed, 655 00:40:05,420 --> 00:40:09,870 prova biżżejjed u żball, figura kif pagi attakk aktar preċiż. 656 00:40:09,870 --> 00:40:15,900 Allura kemm parti ta 'sigurtà mhux biss tevita dawn l-attakki kollox, iżda iskoperta minnhom 657 00:40:15,900 --> 00:40:20,250 u fil-fatt tħares lejn zkuk u tara liema inputs crazy nies ittajpjat fil-website tiegħek. 658 00:40:20,250 --> 00:40:26,040 Liema termini ta 'tiftix li nies ittajpjat fil-website tiegħek fil-tamiet ta' overflowing xi buffer? 659 00:40:26,040 --> 00:40:28,900 U dan kollu jeħodna għall-punti bażiċi sempliċi ta 'x'hemm firxa, 660 00:40:28,900 --> 00:40:32,510 u dak ma jfisser li talloka u l-użu tal-memorja? 661 00:40:32,510 --> 00:40:34,920 U marbuta ma 'dan, wisq, hija din. 662 00:40:34,920 --> 00:40:37,520 >> Mela ejja biss t'għajn ġewwa ta 'hard drive għal darb'oħra. 663 00:40:37,520 --> 00:40:40,190 Allura inti recall minn ġimgħa jew tnejn ilu li meta inti drag fajls 664 00:40:40,190 --> 00:40:45,470 għall tiegħek riċiklu bin jew Trash jistgħu, x'jiġri? 665 00:40:45,470 --> 00:40:47,850 [Student] Xejn. >> Yeah, assolutament xejn. Eventwalment, jekk inti tmexxi baxx 666 00:40:47,850 --> 00:40:51,370 fuq l-ispazju disk, Windows jew Mac OS se jibda tħassar files għalik. 667 00:40:51,370 --> 00:40:53,670 Imma jekk inti drag xi ħaġa fil hemm, allura huwa mhux fil-livelli kollha siguri. 668 00:40:53,670 --> 00:40:56,550 Kollha, roomate ħabib jew membru tal-familja tiegħek ma tagħmel hu li ikklikkja darbtejn, u voila. 669 00:40:56,550 --> 00:40:59,720 Hemm il-fajls kollha vaga li inti ppruvaw li jitħassar. 670 00:40:59,720 --> 00:41:02,840 Allura ħafna minna inqas jafu li inti għandek dritt ikklikkja jew jikkontrollaw ikklikkja 671 00:41:02,840 --> 00:41:05,320 u vojta-Trash, jew xi ħaġa bħal dik. 672 00:41:05,320 --> 00:41:07,900 Iżda anke allura, li ma pjuttost tagħmel l-trick. 673 00:41:07,900 --> 00:41:11,340 Minħabba dak li jiġri meta inti jkollhom fajl fuq hard drive tiegħek 674 00:41:11,340 --> 00:41:14,590 li tirrappreżenta xi dokument kelma jew xi JPEG? 675 00:41:14,590 --> 00:41:18,820 U dan jirrappreżenta hard drive tiegħek, u ejja ngħidu dan sliver hawn jirrappreżenta dan il-fajl, 676 00:41:18,820 --> 00:41:21,640 u huwa kompost minn mazz sħiħ ta 'l-0 u 1 ta. 677 00:41:21,640 --> 00:41:25,470 X'jiġri meta inti mhux biss drag dan il-fajl għall-trashcan jew riċiklu bin, 678 00:41:25,470 --> 00:41:30,390 iżda wkoll vojta? 679 00:41:30,390 --> 00:41:32,820 Sort ta 'xejn. Mhuwiex assolutament xejn issa. 680 00:41:32,820 --> 00:41:37,630 Issa huwa biss xejn, għaliex ftit xi ħaġa jiġri fil-forma ta 'din it-tabella. 681 00:41:37,630 --> 00:41:41,170 Allura hemm xi tip ta 'database jew tabella ġewwa tal-memorja tal-kompjuter 682 00:41:41,170 --> 00:41:44,470 li essenzjalment tkun 1 kolonna għall-ismijiet fajls, 683 00:41:44,470 --> 00:41:50,550 u 1 kolonna għall-lokazzjoni fajl, fejn dan jista 'jkun post 123, biss numru bl-addoċċ. 684 00:41:50,550 --> 00:41:58,270 Allura aħna jista 'jkollha xi ħaġa simili x.jpg, u l-post 123. 685 00:41:58,270 --> 00:42:02,870 U x'jiġri mbagħad, meta inti vojta Trash tiegħek? 686 00:42:02,870 --> 00:42:06,720 Li tmur bogħod. Imma dak ma jmurx lil hinn hija l-'0 u 1 ta. 687 00:42:06,720 --> 00:42:09,690 >> Allura x'inhu, imbagħad, il-konnessjoni ma pset 4? 688 00:42:09,690 --> 00:42:13,460 Ukoll, ma pset 4, sempliċiment għax konna aċċidentalment mħassra 689 00:42:13,460 --> 00:42:15,890 il-karta flash kompatti li kienu kollha ta 'dawn ir-ritratti, 690 00:42:15,890 --> 00:42:18,710 jew sempliċiment minħabba li mill xortih ħażina saret korrotta, 691 00:42:18,710 --> 00:42:21,170 ma jfissirx li l-0 u l-1 mhumiex għadhom hemm. 692 00:42:21,170 --> 00:42:23,920 Forsi ftit minnhom huma mitlufa minħabba xi ħaġa ltqajna korrotta 693 00:42:23,920 --> 00:42:26,530 fis-sens li xi s 0 sar 1 u 1 beda 0 s. 694 00:42:26,530 --> 00:42:30,460 Affarijiet ħżiena jista 'jiġri minħabba l-software Buggy jew difettużi hardware. 695 00:42:30,460 --> 00:42:33,510 Iżda ħafna minn dawk bits, forsi anki 100% minnhom għadhom hemm, 696 00:42:33,510 --> 00:42:38,330 huwa biss li l-kompjuter jew l-kamera ma tkunx taf fejn JPEG 1 beda 697 00:42:38,330 --> 00:42:41,660 u fejn JPEG 2 beda, imma jekk inti, il-programmer, 698 00:42:41,660 --> 00:42:45,800 jafu, bi ftit ta 'sofistikati, fejn dawk JPEGs huma jew dak li look like, 699 00:42:45,800 --> 00:42:49,570 inti tista 'tanalizza l-' 0 u s-1 u jgħidu, "Ooh. JPEG. Ooh, JPEG. " 700 00:42:49,570 --> 00:42:52,830 Tista 'tikteb programm essenzjalment biss għal jew waqt loop 701 00:42:52,830 --> 00:42:56,100 li jirkupra kull wieħed u waħda ta 'dawn il-fajls. 702 00:42:56,100 --> 00:42:59,360 Allura l-lezzjoni allura, huwa li tibda "sikur" tħassir fajls tiegħek 703 00:42:59,360 --> 00:43:01,720 jekk inti tixtieq li tevita dan għal kollox. Iva? 704 00:43:01,720 --> 00:43:06,940 [Kwistjoni Student, mhux intelliġibbli] 705 00:43:06,940 --> 00:43:11,150 >> Jkollhom memorja aktar milli għamilt qabel - 706 00:43:11,150 --> 00:43:14,790 Oh! Good kwistjoni. Allura għaliex, imbagħad, wara jitbattal il-Trash, 707 00:43:14,790 --> 00:43:18,300 ma kompjuter tiegħek jgħidlek li inti għandek aktar spazju ħieles minn għamilt qabel? 708 00:43:18,300 --> 00:43:22,450 Fil-qosor, għaliex dan huwa mimdud. Aktar teknikament, inti do jkollhom aktar spazju. 709 00:43:22,450 --> 00:43:26,720 Minħabba li issa għandek qal, inti tista 'tpoġġi Jittieħed oħra fejn dan il-fajl kienet darba, 710 00:43:26,720 --> 00:43:28,930 iżda dan ma jfissirx l-bits huma tmur lil hinn, 711 00:43:28,930 --> 00:43:33,070 u dan ma jfissirx l-bits qed jinbidlu kollha 0 s, per eżempju, għall-protezzjoni tiegħek. 712 00:43:33,070 --> 00:43:37,520 B'kuntrast, jekk inti "sikur" fajls tħassar, jew fiżikament jeqirdu l-apparat, 713 00:43:37,520 --> 00:43:40,810 li verament huwa l-uniku mod, xi kultant, madwar dik. 714 00:43:40,810 --> 00:43:45,300 Allura għaliex ma we leave fuq din in-nota semi-scary, u aħna se tara int nhar it-Tnejn. 715 00:43:45,300 --> 00:43:52,810 CS50.TV