1 00:00:00,000 --> 00:00:10,970 >> [Musika jotzen] 2 00:00:10,970 --> 00:00:12,536 >> David J. MALAN: Eskubidea guztiak. 3 00:00:12,536 --> 00:00:13,392 >> [Barreak] 4 00:00:13,392 --> 00:00:14,240 >> Ongi itzuli. 5 00:00:14,240 --> 00:00:14,990 Hau CS50 da. 6 00:00:14,990 --> 00:00:16,890 Eta hau da, bost aste bukaeran. 7 00:00:16,890 --> 00:00:20,020 Eta, orain arte, nahiko askoz dugu eman eman hartuz ez dagoela 8 00:00:20,020 --> 00:00:23,480 konpiladore honetan, Clang, hori dituzun existitzen dira honen bidez dei 9 00:00:23,480 --> 00:00:27,100 beste tresna izeneko Egin hori nolabait magikoki zure iturburu kodea bihurtzen 10 00:00:27,100 --> 00:00:31,350 objektu-kodea, zero eta zeintzuk sartu ordenagailu CPU, central que 11 00:00:31,350 --> 00:00:33,410 prozesatzeko unitatea, benetan ulertzen. 12 00:00:33,410 --> 00:00:36,770 Baina badira zenbaki bat hori da, bihurtzen da gertatzen kanpaia azpian hasi 13 00:00:36,770 --> 00:00:38,690 sarrera eta irteera artean. 14 00:00:38,690 --> 00:00:41,800 >> Eta haragia dugula proposatu nahi nuke Xehetasun gehiagorekin sartu dela 15 00:00:41,800 --> 00:00:45,130 lau urrats horiek, zerbait izeneko pre-tratamendua, zerbait 16 00:00:45,130 --> 00:00:48,300 izeneko konpilazioaren, eta hori ikusi dugu, zerbait izeneko muntaia, eta 17 00:00:48,300 --> 00:00:49,420 zerbait izeneko lotzen ditu. 18 00:00:49,420 --> 00:00:53,270 Beraz, orain arte, gure zenbait programak, izan dugu zorrotzak barne. 19 00:00:53,270 --> 00:00:56,650 Duela gutxi izan dugu zorrotz batzuk konstanteak definitzen. 20 00:00:56,650 --> 00:01:00,660 Beraz bihurtzen da gauza horiek duten ari ikurra hash edo aurretik 21 00:01:00,660 --> 00:01:04,150 libera sinboloa dira pre-prozesadorea zuzentarau. 22 00:01:04,150 --> 00:01:07,960 Hori besterik ez da esaten, modu dotore bat , kode-lerro hori benetan 23 00:01:07,960 --> 00:01:12,280 beste zerbait aurretik bihurtu ordenagailuan ere saiatu bihurtu zure 24 00:01:12,280 --> 00:01:13,800 zeroen eta programa sartzen direnak. 25 00:01:13,800 --> 00:01:19,000 >> Esate baterako, estandar zorrotzak hartzen ditu barne I / O. H, nahiko askoz besterik esan nahi du joan 26 00:01:19,000 --> 00:01:24,010 aurretik, hartu fitxategiak edukia stdio.h eta itsatsi bertan. 27 00:01:24,010 --> 00:01:25,880 Zero ez direnak eta, beraz, puntu horretan oraindik ere. 28 00:01:25,880 --> 00:01:27,470 Benetan aldaketa bat besterik ez da. 29 00:01:27,470 --> 00:01:30,790 Eta hori da deiturikoak zehar egindako aurrez prozesatzeko etapa duzunean 30 00:01:30,790 --> 00:01:34,230 benetan exekutatu Clang edo berariaz Kasu gehienetan egiteko. 31 00:01:34,230 --> 00:01:36,950 Beraz, hau guztia gertatzen ari da Lehenengo automatikoki horrela urruti. 32 00:01:36,950 --> 00:01:38,800 >> Ondoren, konpilazio urratsa dator. 33 00:01:38,800 --> 00:01:40,920 Baina dugu bada oversimplified konpilazio. 34 00:01:40,920 --> 00:01:45,060 Programa bat konpilatzea benetan esan nahi hartu C bezalako zerbait, batetik, 35 00:01:45,060 --> 00:01:48,430 iturburu kodea gara, idatziz zerbait izeneko muntaketa. 36 00:01:48,430 --> 00:01:52,900 Batzar hizkuntza maila txikiagoa da hizkuntza hori, zorionez, ez dugu 37 00:01:52,900 --> 00:01:55,480 dute askoz oraingoan idatzi seihileko honetan. 38 00:01:55,480 --> 00:01:59,100 Baina maila txikiena zuen Zentzu literalki, zuk idazten hasteko 39 00:01:59,100 --> 00:02:04,270 gehitzeko eta kenketak eta biderketak eta kargatu memoria eta memoria gorde nahi du, 40 00:02:04,270 --> 00:02:08,259 oso oinarrizko jarraibideak ordenagailu bat, kanpaia azpian, 41 00:02:08,259 --> 00:02:09,639 benetan ulertzen. 42 00:02:09,639 --> 00:02:14,930 >> Azkenik, muntaia hizkuntza hartzen to zero eta bai dugun izan 43 00:02:14,930 --> 00:02:16,190 beraz, orain arte deskribatzeko. 44 00:02:16,190 --> 00:02:19,270 Eta, azkenik, benetan, ez dago deritzona da fasea lotzen dituen, eta horrek egiten zaitugu 45 00:02:19,270 --> 00:02:22,360 une bat besterik ez da, eta horrek konbinatzen ikusi zure zero eta zero dituztenak eta 46 00:02:22,360 --> 00:02:24,870 direnak beste pertsona batzuk lehenago zuk sortutakoak. 47 00:02:24,870 --> 00:02:26,660 >> Beraz, kontuan hartu hau super simple programa. 48 00:02:26,660 --> 00:02:27,560 Izan zen Astea 1etik da. 49 00:02:27,560 --> 00:02:29,610 Esan zuen, besterik gabe, Hello World, pantailan. 50 00:02:29,610 --> 00:02:30,920 Hau ran dugu Clang bidez. 51 00:02:30,920 --> 00:02:33,200 Edo Egin bidez ran dugu horrek ran Clang. 52 00:02:33,200 --> 00:02:36,170 Eta garai hartan outputted non zero batzuk ere bai. 53 00:02:36,170 --> 00:02:38,100 Baina, ez da kanpo bihurtzen da tarteko urrats bat. 54 00:02:38,100 --> 00:02:40,460 Joan nintzen baino gehiago izanez gero, hemen - Ene, ez nahi zion ikusteko oraindik. 55 00:02:40,460 --> 00:02:44,800 Joan nintzen baino gehiago izanez gero, hemen nire tresnaren eta ireki dut hello.c, hemen 56 00:02:44,800 --> 00:02:46,160 bera duen programa da. 57 00:02:46,160 --> 00:02:48,600 Eta zein da nire terminal egin dut leiho hemen noa 58 00:02:48,600 --> 00:02:51,430 exekutatu Clang baino Make, eta horrek automatizatzen guztiak lau 59 00:02:51,430 --> 00:02:52,870 Gurekin urrats horiek. 60 00:02:52,870 --> 00:02:58,620 Eta clang-S egiten dut eta hello.c ondoren, eta, ondoren, idatzi. 61 00:02:58,620 --> 00:03:00,590 >> Eta keinuka gonbit bat eskuratu dut berriro ere, eta hori ona da. 62 00:03:00,590 --> 00:03:05,280 Eta orain, apur bat handiagoak leihoan, Ireki gedit hemen noa. 63 00:03:05,280 --> 00:03:09,610 Eta ireki fitxategi bat dut, bihurtzen da, deritzo hello.s honetan 64 00:03:09,610 --> 00:03:11,870 muntaia hizkuntza hori du Aipatu dut lehenago. 65 00:03:11,870 --> 00:03:15,060 Eta hau da, zer deitzen muntaia hizkuntza, nahiko maila baxua 66 00:03:15,060 --> 00:03:18,470 argibideak zure Intel CPU duten edo edozein hori barruan da 67 00:03:18,470 --> 00:03:19,350 ulertzen. 68 00:03:19,350 --> 00:03:24,480 Eta mov mugitzen da. deia da , telefonora deitu behar da, oso maila funtzioa. 69 00:03:24,480 --> 00:03:26,380 Azpi kendu da. 70 00:03:26,380 --> 00:03:30,370 >> Beraz, bereziki PUZ bat duzu barruan Zure ordenagailuan, zer egiten du 71 00:03:30,370 --> 00:03:34,300 Ezberdinak, versus bestetik PUZ merkatua da, eta horrek argibideak da 72 00:03:34,300 --> 00:03:39,460 ulertzen du, eta, askotan, nola eraginkorra da da, nola azkar da zenbait exekutatzean da 73 00:03:39,460 --> 00:03:40,380 jarraibide horien. 74 00:03:40,380 --> 00:03:45,150 Orain honi buruzko informazio gehiago lortzeko, hartu ahal izango duzu hurrengo Fall Colegio CS61. 75 00:03:45,150 --> 00:03:48,170 Baina, hemen, dugu, adibidez, batzuk identifikadore hori ezagutzen begiratu dezake. 76 00:03:48,170 --> 00:03:50,150 hello.c programa baten izena da. 77 00:03:50,150 --> 00:03:51,070 >> . Testua - 78 00:03:51,070 --> 00:03:54,190 Ez dago interes handirik ez orain, gogoratzen den testua 79 00:03:54,190 --> 00:03:59,190 segmentuan, astelehenetik bezala, non parte memoria zure programa benetan amaitzen. 80 00:03:59,190 --> 00:04:01,330 Beraz, hori da, gutxienez vaguely ezagutzen ez. 81 00:04:01,330 --> 00:04:03,730 Hemen, jakina, aipatu behar da Gure eginkizun nagusia da. 82 00:04:03,730 --> 00:04:07,220 Behera korritu, gauza hauek erreferentzia izenekoa erregistroak, oso txikiak Saiakera 83 00:04:07,220 --> 00:04:09,190 memoria zure CPU benetako barruan. 84 00:04:09,190 --> 00:04:12,930 Eta joan I behera bada, are are gehiago, nolabaiteko ikusten dut 85 00:04:12,930 --> 00:04:14,240 ASCII zeharkako aipamena. 86 00:04:14,240 --> 00:04:17,120 Eta hor dago, hain zuzen ere, kate hau da, kaixo, koma, mundua. 87 00:04:17,120 --> 00:04:20,079 >> Beraz, istorio laburrak, hau izan da zuretzat, gertatzen ari da automatikoki, 88 00:04:20,079 --> 00:04:22,140 kanpaia azpian, denbora hori guztia. 89 00:04:22,140 --> 00:04:26,450 Eta zer dira benetan gertatzen ari dena da behin exekutatu duzun Clang, edo bidearen arabera 90 00:04:26,450 --> 00:04:29,150 Egiteko, lehen ari zaren lortzean, iturburu-kodea, batetik, 91 00:04:29,150 --> 00:04:30,700 izenekoak muntaia hizkuntza. 92 00:04:30,700 --> 00:04:35,210 Ondoren Clang muntaia hau bihurtzean Hizkuntza behera zero eta direnak. 93 00:04:35,210 --> 00:04:38,340 Eta hau diapositiba hasi dugu Gure Aste 0 buruzko eztabaida - 94 00:04:38,340 --> 00:04:39,840 eta, ondoren, Aste 1. 95 00:04:39,840 --> 00:04:44,030 Eta, azkenik, zero horiek eta bai daude zero eta bai konbinatzen 96 00:04:44,030 --> 00:04:47,190 liburutegi horiek gara hartuz Standard I / O edo atsegin ematen 97 00:04:47,190 --> 00:04:50,010 Katea Liburutegia edo are CS50 liburutegian. 98 00:04:50,010 --> 00:04:54,200 >> Beraz, irudi hau margotzeko gehiago ikusmen, hello.c dugu. 99 00:04:54,200 --> 00:04:57,220 Eta, jakina, baina, erabiltzen printf du funtzionatzeko, esan kaixo mundua. 100 00:04:57,220 --> 00:05:01,810 Konpilazio urratsa hartzen du behera espedientea ikusi besterik ez dugu hello.s, nahiz 101 00:05:01,810 --> 00:05:04,290 hori, normalean, nahiz eta ezabatu automatikoki. 102 00:05:04,290 --> 00:05:06,050 Baina hori muntaia kodea da erdiko urratsean. 103 00:05:06,050 --> 00:05:09,750 Eta orduan, muntaia muntatzen dugu hizkuntza, nolabait esateko, hori egiten duzunean 104 00:05:09,750 --> 00:05:10,830 lortu zero eta horiek ere. 105 00:05:10,830 --> 00:05:13,920 Beraz, modu eraginkorrean parte dugu handitutako gaur egun on zer gara emandako hartuz, 106 00:05:13,920 --> 00:05:16,430 esan nahi du iturri kodea joan kodea oposiziorako. 107 00:05:16,430 --> 00:05:18,850 >> Baina, azkenik, gaur egun, irudi bera dela - it shove dezagun baino gehiago 108 00:05:18,850 --> 00:05:20,020 ezkerreko aldean. 109 00:05:20,020 --> 00:05:22,880 Eta ohartu goian dagoela Stdio.h aipatu dut. 110 00:05:22,880 --> 00:05:25,030 Duen fitxategi bat dugun sartzen da ia hasi 111 00:05:25,030 --> 00:05:26,250 programak idatzitakoa dugu. 112 00:05:26,250 --> 00:05:28,830 Eta espedientea horren edukia da get kopia itsatsi, 113 00:05:28,830 --> 00:05:30,350 eraginkortasunez zure kodea gainean. 114 00:05:30,350 --> 00:05:34,170 Baina bihurtzen da, eta ordenagailu batek sistema, nonbait, ez da zentzuzkoa bat 115 00:05:34,170 --> 00:05:39,150 stdio.c fitxategia norbaitek idatzi zuen urte duela inplementatzen guztiak 116 00:05:39,150 --> 00:05:41,870 funtzio izendatu zuten stdio.h batean. 117 00:05:41,870 --> 00:05:45,465 >> Orain errealitate seguruenik ez zure Mac edo zure PC edo are batean 118 00:05:45,465 --> 00:05:47,660 CS50 tresnaren bat gordinak C kodea da. 119 00:05:47,660 --> 00:05:52,710 Norbaitek dagoeneko konpilatu da, eta barne . O kode objektu edo fitxategi bat. 120 00:05:52,710 --> 00:05:56,020 fitxategia, eta horrek liburutegi partekatua aipatzen hori izan da aurrez instalatutako eta 121 00:05:56,020 --> 00:05:57,240 zuretzat aurrez konpilatutako. 122 00:05:57,240 --> 00:06:01,950 Baina demagun ez dagoela, hain zuzen ere existitzen gure ordenagailuak paraleloki stdio.c an 123 00:06:01,950 --> 00:06:02,650 Clang batera. 124 00:06:02,650 --> 00:06:04,960 Zure kodea da konpilatuta eta muntatu. 125 00:06:04,960 --> 00:06:09,200 stdio.c kodearen ari bildu eta muntatu, beraz, azken hori 126 00:06:09,200 --> 00:06:13,730 zapaldu, behera hemen, nolabait dugu lotura, nolabait esateko, zure zero eta bai 127 00:06:13,730 --> 00:06:18,430 bere zero eta bai bat sartu programa erraz bat da, azken finean, 128 00:06:18,430 --> 00:06:20,540 deitu besterik Hello. 129 00:06:20,540 --> 00:06:23,340 >> Beraz, hori da magia hori guztia izan da, beraz, orain arte gertatzen. 130 00:06:23,340 --> 00:06:26,430 Eta hauek hartzen jarraituko du prozesuak ematen, baina konturatu 131 00:06:26,430 --> 00:06:28,750 han xehetasunak mamitsuena asko gertatzen ez azpian. 132 00:06:28,750 --> 00:06:31,920 Eta hau da, zer egiten du zure Intel barruan ordenagailu 133 00:06:31,920 --> 00:06:33,940 bereziki desberdin. 134 00:06:33,940 --> 00:06:37,020 >> Beraz, ohar horretan, nahi duzu bada gurekin Bazkaltzeko ostiral honetan, joan egin 135 00:06:37,020 --> 00:06:41,570 Ohiko leku cs50.net/rsvp, 1:15 PM ostiral honetan. 136 00:06:41,570 --> 00:06:43,400 Eta, orain gutxi iragarkiak bat. 137 00:06:43,400 --> 00:06:44,670 Beraz, berri onak batzuk ditugu. 138 00:06:44,670 --> 00:06:45,970 Eta zenbait albiste txarra izan dugu. 139 00:06:45,970 --> 00:06:47,260 Berri onak hemen hasi. 140 00:06:47,260 --> 00:06:52,038 141 00:06:52,038 --> 00:06:54,510 >> [GROANING] 142 00:06:54,510 --> 00:06:54,710 >> Guztiak eskubidea. 143 00:06:54,710 --> 00:06:56,670 Beno, teknikoki da opor eta, beraz, ez da hainbeste digu opari bat. 144 00:06:56,670 --> 00:06:58,030 Baina gero, noski, albiste txarra da. 145 00:06:58,030 --> 00:07:00,550 146 00:07:00,550 --> 00:07:01,880 >> [GROANING] 147 00:07:01,880 --> 00:07:03,530 >> Denbora asko igaro dut animazioak horien gainean. 148 00:07:03,530 --> 00:07:04,690 >> [Barreak] 149 00:07:04,690 --> 00:07:07,000 >> Ez dago berrikuspen saio bat izango da, hau astelehena datozen. 150 00:07:07,000 --> 00:07:08,340 PM 5:30 etan izango da joan. 151 00:07:08,340 --> 00:07:11,210 Gogoratzen izango ditugu datu horiek guztiak Ikastaro horrek e-posta bidez 152 00:07:11,210 --> 00:07:13,470 besterik gabe, egun pare bat webgunea. 153 00:07:13,470 --> 00:07:16,610 It filmatu egingo da, eta eskuragarri Handik gutxira. 154 00:07:16,610 --> 00:07:19,200 Beraz, bada, ezin duzu egiteko hori astelehena gau zirrikitua, ez kezkatu. 155 00:07:19,200 --> 00:07:22,270 Atal datozen aste honetan izango da, gainera, Iritzia zentratu galdetegiko. 156 00:07:22,270 --> 00:07:25,670 Zure atala Astelehena, hau da, badago hain zuzen ere, unibertsitateko opor dugu 157 00:07:25,670 --> 00:07:26,920 oraindik atalean betetzen. 158 00:07:26,920 --> 00:07:28,890 Besterik gabe, ezin baduzu egin duten Atal ari zaren joan delako 159 00:07:28,890 --> 00:07:29,860 kanpoan, hori ongi. 160 00:07:29,860 --> 00:07:33,710 Igandea joateko bat edo Asteartea atala edo to tune-en Jason atala, hau da, 161 00:07:33,710 --> 00:07:35,110 eskuragarri online. 162 00:07:35,110 --> 00:07:37,490 >> Beraz, gehiago albiste txarra. 163 00:07:37,490 --> 00:07:41,960 Beraz, curriculumaren arabera, hitzaldia dugu datorren ostiralean. 164 00:07:41,960 --> 00:07:43,690 Baina berri ona - 165 00:07:43,690 --> 00:07:44,860 argi eta garbi, denbora gehiegi igaro dut honetan. 166 00:07:44,860 --> 00:07:45,280 >> [Barreak] 167 00:07:45,280 --> 00:07:47,140 >> Ostirala en hurrengo hitzaldiak izango ditugu bertan behera uzteko. 168 00:07:47,140 --> 00:07:50,590 Beraz, guretzat opari bat izango da, beraz, benetan polita izan atsedenaldi batean 169 00:07:50,590 --> 00:07:52,990 aste honetan, eta beraz, bi aste bitartean. 170 00:07:52,990 --> 00:07:57,460 Ez hitzaldi datorren astean, txiki-txiki bat besterik ez da, beraz, galdetegi txiki, zein izan behar duzu 171 00:07:57,460 --> 00:07:59,030 ohitu gero eta ilusioa. 172 00:07:59,030 --> 00:08:03,870 >> Hargatik, gaur egun gure arreta piztu behar zerbait gehiago da, hain zuzen ere, ikusmen 173 00:08:03,870 --> 00:08:06,990 eta gehiago zirraragarria eta etapa ezartzeko zer horizonte izan joan 174 00:08:06,990 --> 00:08:08,420 denbora besterik aste pare bat. 175 00:08:08,420 --> 00:08:12,160 Lehenengo galdetegi ondoren, buelta dugu gure arazoa multzoen bestera fokua 176 00:08:12,160 --> 00:08:16,710 domeinu arazo jakin, dela auzitegi edo segurtasun gehiago, oro har. 177 00:08:16,710 --> 00:08:19,550 >> Izan ere, arazo hau tradizio set me bat da 178 00:08:19,550 --> 00:08:24,850 ikaskide edo CAk irakasten ibiltzen zehar campuseko argazki batzuk hartzen 179 00:08:24,850 --> 00:08:29,450 identifikagarri baina ez bistako pertsona, leku, edo gauzak, eta, ondoren, urtero dut 180 00:08:29,450 --> 00:08:34,520 nolabait kudeatzeko ustekabean ezabatu edo hondatutako digital media txartela 181 00:08:34,520 --> 00:08:35,720 hori da gure barruan kamera. 182 00:08:35,720 --> 00:08:36,860 Baina big deal ez. 183 00:08:36,860 --> 00:08:39,200 Aurrera dezaket eta plug nire ordenagailuan sartzen. 184 00:08:39,200 --> 00:08:43,010 Da irudi auzitegiko bat egin nuen, beraz, , hitz egiten zero kopiatzea eta 185 00:08:43,010 --> 00:08:46,830 direnak off memoria txartela duten ala ez bere SD txartela edo compact flash txartela edo 186 00:08:46,830 --> 00:08:48,100 edozein dela ere ezagutzen duzu. 187 00:08:48,100 --> 00:08:49,300 Eta gero entregatu ahal izango dugu. 188 00:08:49,300 --> 00:08:53,190 >> Eta, beraz, erronka aurretik, besteak beste, zuretzat gauza, idazteko izango da 189 00:08:53,190 --> 00:08:58,630 C kodea duten sorta oso bat berreskuratu du Niretzat JPEGs eta agerian izango da 190 00:08:58,630 --> 00:09:00,190 Pertsona horiek, lekuak, edo gauza. 191 00:09:00,190 --> 00:09:03,340 Eta, gainera, hitz egingo dugu, arazo honetan ezarri eta egunetan, zatoz buruz 192 00:09:03,340 --> 00:09:04,440 grafikoak orokorrean. 193 00:09:04,440 --> 00:09:06,140 Erabili dugu beraiekin, ikastaro bat, apurtu da. 194 00:09:06,140 --> 00:09:09,080 Baina Ordena duzun hartu emandako existitzen ez horiek maila handiko nozio 195 00:09:09,080 --> 00:09:10,680 laukizuzenak eta obalo du. 196 00:09:10,680 --> 00:09:12,450 Baina kanpaia azpian daude pixel. 197 00:09:12,450 --> 00:09:14,370 Eta izan dituzun hasteko horiek pentsatzen. 198 00:09:14,370 --> 00:09:18,800 Edo p-multzoa izango duzu 4 izatea uste Zure adreilu arteko aldea buruz, nola 199 00:09:18,800 --> 00:09:21,990 azkar baloia zaren zehar mugitzen da Pantailako apurtu. 200 00:09:21,990 --> 00:09:24,830 Beraz, ideia hau da: zure pantaila hori puntu 201 00:09:24,830 --> 00:09:26,290 play sartuko da dagoeneko. 202 00:09:26,290 --> 00:09:29,430 >> Orain ikusten duzuna, baina, zer da lortu ordenagailuko pantailan duzu. 203 00:09:29,430 --> 00:09:33,680 Dituzun inoiz bada gainbegiratu onak edo txarra telebista, odds askoz politak dira 204 00:09:33,680 --> 00:09:36,280 tratatzeko technophobes bezalako ikusleek ez duten benetan 205 00:09:36,280 --> 00:09:37,630 ezagutzen informatika buruz asko. 206 00:09:37,630 --> 00:09:40,840 Eta, beraz, oso erraza da polizia for detektibe esan, ezin duzu 207 00:09:40,840 --> 00:09:41,710 garbitu niretzat sortu dela? 208 00:09:41,710 --> 00:09:42,710 Edo hobetzeko, ezta? 209 00:09:42,710 --> 00:09:45,550 Hobetu hitza buzz bezalakoa da gehien edozein delitu erlazionatutako ikuskizuna. 210 00:09:45,550 --> 00:09:49,240 Eta errealitatea da hartu duzu oso bat bada susmagarri bat egiteko argazki lausoak 211 00:09:49,240 --> 00:09:51,620 zerbait txarra, ezin duzu hobetu besterik ez da. 212 00:09:51,620 --> 00:09:53,080 Ezin duzu infinituki gerturatzeko. 213 00:09:53,080 --> 00:09:56,350 Ezin duzu norbait en glint ikusi begi duten konpromisoa hartu duten 214 00:09:56,350 --> 00:09:59,860 bereziki delitu, izan arren hau prebalentzia telebistan. 215 00:09:59,860 --> 00:10:04,110 >> Eta, beraz dezagun motibatu duten próximas arazoa ohi batean ezarri 216 00:10:04,110 --> 00:10:05,765 ikuskizunak eta horietako batzuk egiten duzun ezaguna izan daiteke. 217 00:10:05,765 --> 00:10:06,500 >> [Bideo-erreprodukzioa] 218 00:10:06,500 --> 00:10:07,835 >> -Ados. 219 00:10:07,835 --> 00:10:09,956 Orain, duzun begirada on bat lortzeko en. 220 00:10:09,956 --> 00:10:17,060 221 00:10:17,060 --> 00:10:17,766 >> -Hold it. 222 00:10:17,766 --> 00:10:18,658 Exekutatu back hori. 223 00:10:18,658 --> 00:10:19,550 >> -Itxaron minutu bat. 224 00:10:19,550 --> 00:10:21,580 Joan eskuinera. 225 00:10:21,580 --> 00:10:21,800 >> -Ez dago. 226 00:10:21,800 --> 00:10:22,690 Izoztu dela. 227 00:10:22,690 --> 00:10:23,692 >> -Pantaila osoa. 228 00:10:23,692 --> 00:10:23,846 >> -Ados. 229 00:10:23,846 --> 00:10:24,154 Izoztu dela. 230 00:10:24,154 --> 00:10:25,140 >> -Estutu sortu horretan, egingo dut? 231 00:10:25,140 --> 00:10:27,090 >> Mutil on-Vector atzeko gurpila arabera. 232 00:10:27,090 --> 00:10:29,730 >> Eskubidea hemen Zoom-Leku honetan. 233 00:10:29,730 --> 00:10:33,700 >> -Ekipoak, eskuin, imaged du handitu ahal izango da, eta zorroztu. 234 00:10:33,700 --> 00:10:34,490 >> -Zer da hori? 235 00:10:34,490 --> 00:10:35,870 >> Ditu hobekuntza-programa bat da. 236 00:10:35,870 --> 00:10:36,793 >> -Ezin duela garbitu edozein sortu? 237 00:10:36,793 --> 00:10:38,560 >> -Nik ez dakit. 238 00:10:38,560 --> 00:10:39,090 Dezagun areagotuko da. 239 00:10:39,090 --> 00:10:41,690 >> -Hobetu atal A-6. 240 00:10:41,690 --> 00:10:43,510 >> -I xehetasun hobetu eta - 241 00:10:43,510 --> 00:10:44,456 >> -Nik ez da nahikoa uste hobetzeko. 242 00:10:44,456 --> 00:10:45,402 Askatu da nire pantaila. 243 00:10:45,402 --> 00:10:47,300 >> -Hobetu bere begi isla. 244 00:10:47,300 --> 00:10:49,330 >> -Dezagun exekutatu honen bidez bideo-hobekuntza. 245 00:10:49,330 --> 00:10:50,340 >> -Edgar, hau hobetu ahal izango duzu? 246 00:10:50,340 --> 00:10:52,320 >> Hang-an. 247 00:10:52,320 --> 00:10:54,290 >> -I've dira hausnarketa hori lantzen. 248 00:10:54,290 --> 00:10:55,560 >> Norbaitek-en gogoeta. 249 00:10:55,560 --> 00:10:56,440 >> -Hausnarketa. 250 00:10:56,440 --> 00:10:57,940 >> -Bada, gogoeta bat da gizonaren aurpegian. 251 00:10:57,940 --> 00:10:58,860 >> -Hausnarketa. 252 00:10:58,860 --> 00:10:59,710 >> -Bada, gogoeta bat da. 253 00:10:59,710 --> 00:11:00,900 >> Ispilu on-Txikiagotu. 254 00:11:00,900 --> 00:11:03,500 >> -Duzu gogoeta bat ikus daiteke. 255 00:11:03,500 --> 00:11:04,700 >> -Can, irudia hobetzeko duzu hemendik aurrera? 256 00:11:04,700 --> 00:11:05,700 >> -Ezin hura hobetzeko duzu hemen? 257 00:11:05,700 --> 00:11:06,500 >> -Ezin hobetzen duzu? 258 00:11:06,500 --> 00:11:07,380 >> -Ezin hobetzen duzu? 259 00:11:07,380 --> 00:11:08,190 >> -Ezin dugu hau hobetzeko? 260 00:11:08,190 --> 00:11:08,940 >> -Ezin hobetzen duzu? 261 00:11:08,940 --> 00:11:10,280 >> Bigarren an-Eutsi, hobetu dut. 262 00:11:10,280 --> 00:11:11,570 >> Ate-en Txikiagotu. 263 00:11:11,570 --> 00:11:12,180 >> X10-. 264 00:11:12,180 --> 00:11:13,052 >> Zoom-. 265 00:11:13,052 --> 00:11:13,197 >> [Barreak] 266 00:11:13,197 --> 00:11:14,360 >> -Mugitu sartu 267 00:11:14,360 --> 00:11:15,100 >> -Itxaron, gelditu. 268 00:11:15,100 --> 00:11:15,740 >> -Gelditu. 269 00:11:15,740 --> 00:11:16,290 >> -Pausatu da. 270 00:11:16,290 --> 00:11:19,390 >> -Biratu 75 gradu inguruan bertikala mesedez. 271 00:11:19,390 --> 00:11:19,886 >> [Barreak] 272 00:11:19,886 --> 00:11:24,350 >> -Gelditu, eta atzera zatia atea buruz berriro. 273 00:11:24,350 --> 00:11:26,330 >> Got-irudi bat Enhancer ahal bit? 274 00:11:26,330 --> 00:11:28,990 >> -Agian Pradeep Sen erabili ahal izango dugu metodoa leihoetatik sartzen ikusi. 275 00:11:28,990 --> 00:11:30,680 >> -Hau software artearen egoera da. 276 00:11:30,680 --> 00:11:31,676 >> The ikono-balioa da off. 277 00:11:31,676 --> 00:11:34,166 >> -Rekin eskuineko konbinazio algoritmoak. 278 00:11:34,166 --> 00:11:38,399 >> -Hartu zuen argiztapen algoritmoak behar hurrengo maila I eta horiek erabili ahal izateko 279 00:11:38,399 --> 00:11:38,648 argazki hau indartzeko. 280 00:11:38,648 --> 00:11:42,050 >> -Lock eta z ardatzean handitzeko. 281 00:11:42,050 --> 00:11:42,760 >> -Hobetu. 282 00:11:42,760 --> 00:11:43,060 >> -Hobetu. 283 00:11:43,060 --> 00:11:43,760 >> -Hobetu. 284 00:11:43,760 --> 00:11:45,010 >> Izoztu-eta hobetzeko. 285 00:11:45,010 --> 00:11:47,470 286 00:11:47,470 --> 00:11:47,910 >> [END bideo-erreprodukzioa] 287 00:11:47,910 --> 00:11:51,470 >> David J. MALAN: Beraz Arazoa Ezarri 5 zer datza aurretik dago. 288 00:11:51,470 --> 00:11:55,260 Beraz, laster ikusiko dugu hobeto ulertzeko noiz eta zergatik ditzakezun 289 00:11:55,260 --> 00:11:57,300 eta gure ezin horrela hobetzeko. 290 00:11:57,300 --> 00:12:00,090 Baina lehen, dezagun itzuli, gure arreta eraikuntza-blokeak egiten zaitugu batzuk 291 00:12:00,090 --> 00:12:02,250 gai izan behar duen istorio kontatu nahi izan. 292 00:12:02,250 --> 00:12:05,580 >> Beraz, gogora ekarri atera dugun argazki honetan Astelehena, eta pixka bat azken astean. 293 00:12:05,580 --> 00:12:09,970 Eta hau gauza diseinua deskribatzen ordenagailuaren memorian denean 294 00:12:09,970 --> 00:12:11,000 programa exekutatzen ari. 295 00:12:11,000 --> 00:12:14,310 Gora gora segmentu Tech, oroitzapen, aipatzen , benetako zero eta bai 296 00:12:14,310 --> 00:12:16,000 osatzen duten programa. 297 00:12:16,000 --> 00:12:19,340 Ez da, behean, edo batzuk hasieratu uninitialized datuak, eta horrek, normalean, 298 00:12:19,340 --> 00:12:22,910 konstanteak nahi bezala gauzak edo aipatzen kateak edo global aldagaiak 299 00:12:22,910 --> 00:12:24,200 dira, aldez aurretik onartuta. 300 00:12:24,200 --> 00:12:26,500 Badira zeure da, baina etorri egingo dugu itzuli pixka batean. 301 00:12:26,500 --> 00:12:27,410 >> Eta gero pila da. 302 00:12:27,410 --> 00:12:30,660 Askoz erretiluak pila bezala kafetegia, hau da, non memoria lortzen 303 00:12:30,660 --> 00:12:33,610 geruzetan eta geruzetan direnean Zer programa batean? 304 00:12:33,610 --> 00:12:36,380 305 00:12:36,380 --> 00:12:37,730 Zer pila erabiltzeko da? 306 00:12:37,730 --> 00:12:39,320 >> Bai? 307 00:12:39,320 --> 00:12:40,000 >> Funtzioa deitu. 308 00:12:40,000 --> 00:12:42,890 Denbora edozein funtzio-dei bat duzunean, memoria sliver bere egiteko 309 00:12:42,890 --> 00:12:45,020 aldagai lokalak edo bere parametroak. 310 00:12:45,020 --> 00:12:48,810 Pictorially eta, ikusiko dugun bakoitzean duten ondoz ondoko funtzioa deitzen denean, A 311 00:12:48,810 --> 00:12:52,520 deiak deiak B C D deiak, haiek get pila gainean sartuta. 312 00:12:52,520 --> 00:12:55,630 Eta xerra horietako bakoitzean memoria funtsean berezia hedadura 313 00:12:55,630 --> 00:12:58,590 funtzio hori, eta, jakina, problematikoa da nahi duzun eskua bada 314 00:12:58,590 --> 00:13:01,850 ko funtzio batetik bestera pieza bat datuak nahi duzun da 315 00:13:01,850 --> 00:13:03,500 edo mutate aldatzeko. 316 00:13:03,500 --> 00:13:08,060 >> Beraz, zein izan zen gure aukera ematen irtenbide Pila bat irudikatzen dute funtzio bat 317 00:13:08,060 --> 00:13:11,390 enkoadratzearekin memoria barruan aldatzeko pilaren markoa beste bat? 318 00:13:11,390 --> 00:13:14,590 Nola bi eztabaida horiek beste bat? 319 00:13:14,590 --> 00:13:18,510 Beraz, erakusleak edo helbideak moduan, horrek, berriz, besterik gabe, deskribatzeko non hasi 320 00:13:18,510 --> 00:13:22,280 memoria, jakin bat modu Esku-zenbakia, bereziki, 321 00:13:22,280 --> 00:13:23,830 balioa aurkitu daitezke. 322 00:13:23,830 --> 00:13:26,860 Beraz, azken aldiz gogoratzen dugu gehiegi jarraitu istorioa eta begiratu 323 00:13:26,860 --> 00:13:28,280 nahiko buggy programa. 324 00:13:28,280 --> 00:13:32,900 Eta programa honen gutxi bat da buggy arrazoiak, baina gehienak worrisome bat da 325 00:13:32,900 --> 00:13:34,620 huts egiten badu zer egiaztatu behar delako? 326 00:13:34,620 --> 00:13:39,111 327 00:13:39,111 --> 00:13:40,450 >> Bai, sarrera egiaztatu huts egin. 328 00:13:40,450 --> 00:13:41,870 Sentitzen dut? 329 00:13:41,870 --> 00:13:43,880 >> Da 12 karaktere baino gehiago badu. 330 00:13:43,880 --> 00:13:47,260 Beraz, oso smartly, noiz memcopy deituz, horrek, izenak dioen bezala, besterik gabe, 331 00:13:47,260 --> 00:13:50,630 kopiak bere argumentua bigarren memoria bere lehen argumentua da. 332 00:13:50,630 --> 00:13:54,730 Hirugarren argumentua, oso smartly da hautatuta Ziur ez duzula egiteko 333 00:13:54,730 --> 00:13:59,400 kopiatzeko baino gehiago, kasu honetan, luzera bar, karaktere-kopurua, 334 00:13:59,400 --> 00:14:03,810 helmuga izan da, hau da, array C. Baina arazoa da zer 335 00:14:03,810 --> 00:14:07,230 C bera ez bada nahikoa handi kudeatzeko duten? 336 00:14:07,230 --> 00:14:09,900 Kopuruaren kopiatzeko duzu byte duzula eman. 337 00:14:09,900 --> 00:14:13,040 Baina, zer egin behar benetan gehiago byte baino gela? 338 00:14:13,040 --> 00:14:16,770 >> Beno, programa hau oso foolishly besterik blindly hasten da, edozein dela ere hartu behar da 339 00:14:16,770 --> 00:14:20,650 eman, kaixo backslash 0 handia bada kate laburra 340 00:14:20,650 --> 00:14:22,040 nahikoa, bost karaktere bezala. 341 00:14:22,040 --> 00:14:26,470 Baina benetan bada edo 12 karaktere 1.200 karaktere, azken aldiz ikusi genuen 342 00:14:26,470 --> 00:14:29,380 ari zaren, besterik gabe, erabat joan gainidatzi memoria 343 00:14:29,380 --> 00:14:30,470 ez du zurea. 344 00:14:30,470 --> 00:14:34,390 Eta kasurik okerrenean, gainidatzi baduzu gorri zati izeneko dugun 345 00:14:34,390 --> 00:14:35,380 itzultzeko helbidea - 346 00:14:35,380 --> 00:14:38,370 hau da, ordenagailuaren automatikoki, zuretzat, atzean 347 00:14:38,370 --> 00:14:43,130 eszenak, tucks kanpoan 32 biteko balioa duen gogorarazten zer helbide behar 348 00:14:43,130 --> 00:14:47,080 itzuliko dira foo, beste funtzio hau, egiten da exekutatzen. 349 00:14:47,080 --> 00:14:49,320 Ordenatzen du mamia, ogi bat da zein itzultzen. 350 00:14:49,320 --> 00:14:52,490 Gainidatzi baduzu, seguru asko, Oraindik txarra zentzuduna bada, ezin liteke 351 00:14:52,490 --> 00:14:54,750 potentzialki hartu baino gehiago norbaiten ordenagailuan. 352 00:14:54,750 --> 00:14:58,020 Eta, zalantzarik gabe, izango duzu, kraska da kasu gehienetan. 353 00:14:58,020 --> 00:15:01,690 >> Orain, arazo hau areagotu besterik ez zen hasi ginen memoria buruz hitz gisa 354 00:15:01,690 --> 00:15:03,010 kudeaketa orokorrean. 355 00:15:03,010 --> 00:15:07,150 Eta malloc, memoria esleitzeko, bada bat funtzioak esleitu dugu erabili ahal 356 00:15:07,150 --> 00:15:11,260 memoria ez dugu aldez aurretik jakin batzuk garela behar izatea. 357 00:15:11,260 --> 00:15:13,960 Beraz, adibidez, joan nintzen atzera tresnara hemen. 358 00:15:13,960 --> 00:15:21,010 Eta ireki nuen azken aldiz hello2.c batetik, gogoratzen programa hau hemen, eta horrek begiratu 359 00:15:21,010 --> 00:15:23,500 honen antzeko zerbait apur bat, Hiru lerro - 360 00:15:23,500 --> 00:15:27,940 adierazi zure izena eta, ondoren, kate izena, ezkerretik, berdinen getstring. 361 00:15:27,940 --> 00:15:29,690 Eta, ondoren, inprimatu dugu, erabiltzailearen izena. 362 00:15:29,690 --> 00:15:31,170 >> Beraz, hau super programa erraza izan zen. 363 00:15:31,170 --> 00:15:34,870 Argi izan dezagun, aurrera me eta hola-2. 364 00:15:34,870 --> 00:15:36,680 Dot barra-2 kaixo egin nahi dut. 365 00:15:36,680 --> 00:15:37,750 Adierazi zure izen - 366 00:15:37,750 --> 00:15:38,140 David. 367 00:15:38,140 --> 00:15:38,840 Sartu. 368 00:15:38,840 --> 00:15:39,540 Kaixo David. 369 00:15:39,540 --> 00:15:41,060 Ados lan egin behar dela dirudi. 370 00:15:41,060 --> 00:15:43,140 Baina zer da benetan gertatzen kanpaia hemen azpian? 371 00:15:43,140 --> 00:15:44,670 Lehen dezagun atzera azala geruza batzuk en. 372 00:15:44,670 --> 00:15:48,380 Katea sinonimo besterik ez dugu da konturatu zer? 373 00:15:48,380 --> 00:15:49,110 Char izarra. 374 00:15:49,110 --> 00:15:52,740 Hargatik, pixka bat gehiago da urrutira baina teknikoki zuzena hau 375 00:15:52,740 --> 00:15:55,570 karaktererik izar, eta horrek esan nahi du, hau da, izena, bai, aldagai bat da. 376 00:15:55,570 --> 00:15:59,920 Baina zer gertatzen da izen-dendak helbide da karaktere bat, sentitzen pixka bat arraroa 377 00:15:59,920 --> 00:16:01,050 dut itzuli delako katea. 378 00:16:01,050 --> 00:16:03,580 Atzera anitz dut lortzean karaktereak ez du karaktere bat. 379 00:16:03,580 --> 00:16:07,400 >> Baina, noski, bakarrik behar duzu lehenengo char en helbide gogoratu du, non 380 00:16:07,400 --> 00:16:08,870 kate osoa da, zergatik delako? 381 00:16:08,870 --> 00:16:12,700 Nola irudikatu duzu, non bukaera katea hasieran dago, zertarako? 382 00:16:12,700 --> 00:16:13,630 Backslash zero. 383 00:16:13,630 --> 00:16:17,260 Beraz, bi arrasto horiek irudikatu duzu hasiera eta amaiera baino lehenago 384 00:16:17,260 --> 00:16:20,280 edozein kate daude eta, beraz, luze jo dute Oraindik ongi null horrekin eratu 385 00:16:20,280 --> 00:16:22,110 amaiera, backslash zero dela. 386 00:16:22,110 --> 00:16:24,520 >> Baina hori getstring deituz. 387 00:16:24,520 --> 00:16:28,020 Eta bihurtzen da hori getstring denbora honetan guztian izan da mota 388 00:16:28,020 --> 00:16:28,820 Gurekin iruzurra. 389 00:16:28,820 --> 00:16:32,460 Ari dira lan hori egiteko, ziur izan, Erabiltzaile-kate bat lortzean. 390 00:16:32,460 --> 00:16:34,580 Baina non memoria hori dira datozen? 391 00:16:34,580 --> 00:16:38,440 Joaten gara itzuliz gero, argazkia eta hemen aplikatuko definizio berri bat 392 00:16:38,440 --> 00:16:42,610 Oraingoz, duela pila dagoela, non memoria joaten denean funtzioak deitzen dira, 393 00:16:42,610 --> 00:16:45,370 logika horren arabera, noiz getstring deitu, eta, ondoren, idatzi dut 394 00:16:45,370 --> 00:16:50,900 D-A-V-I-d, non sartu da D-A-V-I-D backslash zero gordetzen oinarritutako an 395 00:16:50,900 --> 00:16:53,480 istorioa kontatzen dugu gurekin arte? 396 00:16:53,480 --> 00:16:55,190 >> Badirudi ahal izango litzateke pila, ezta? 397 00:16:55,190 --> 00:16:58,120 Noiz lortu katea deitu bat lortuko duzu pila memoria zati txiki. 398 00:16:58,120 --> 00:17:01,630 Beraz, D-A-V-I-D arrazoia nabarmentzen da backslash zero gordetzen 399 00:17:01,630 --> 00:17:02,770 pila dago. 400 00:17:02,770 --> 00:17:07,680 Baina itxaron minutu bat, itzultzen getstring katea, nolabait esateko, eta horrek esan nahi du 401 00:17:07,680 --> 00:17:11,700 kafetegitik erretilu da hartu off pila. 402 00:17:11,700 --> 00:17:14,560 Eta azken aldiz esan dugun bezala, laster batean gisa funtzioak, eta zuk hartu 403 00:17:14,560 --> 00:17:20,109 iturria, nolabait esateko, pila off, zer ahal izango du bere gain hartzen arrastoen buruz 404 00:17:20,109 --> 00:17:21,819 memoria hori? 405 00:17:21,819 --> 00:17:25,160 Redrew Ordena ditut galdera-marka gisa eragingarritasunez bihurtu delako 406 00:17:25,160 --> 00:17:26,250 balio ezezaguna da. 407 00:17:26,250 --> 00:17:29,500 Dira berriz erabili daiteke batzuk hurrengo funtzioa deitzen da. 408 00:17:29,500 --> 00:17:31,870 >> Bestela esanda, gerta badugu egon gordetzeko to - 409 00:17:31,870 --> 00:17:34,350 Azkar irudi bat marraztu dut Hemen pilaren. 410 00:17:34,350 --> 00:17:38,690 Gerta dugu marrazketa beheraino bada nire memoria segmentu, eta esan dugu 411 00:17:38,690 --> 00:17:42,230 hori memorian lekua arg nagusia, eta, agian, C eta okupatzen 412 00:17:42,230 --> 00:17:46,790 arg V eta ezer gehiago programan, denean getstring deitzen da, 413 00:17:46,790 --> 00:17:51,120 zentzuzkoa getstring lortzen bat memoria zatia hemen. 414 00:17:51,120 --> 00:17:53,940 Eta, ondoren, D-A-V-I-D nolabait amaitzen funtzio honetan. 415 00:17:53,940 --> 00:17:55,320 Eta oversimplify noa. 416 00:17:55,320 --> 00:18:00,050 Baina Demagun bere D-A-V-I-D backslash zero. 417 00:18:00,050 --> 00:18:03,500 Hainbeste byte hau erabiltzen getstring for markoan. 418 00:18:03,500 --> 00:18:08,270 >> Baina berehala itzultzen getstring gisa, dugu esan zuen azken aldiz memoria honetan zehar 419 00:18:08,270 --> 00:18:11,340 Hemen guztiak bihurtzen - woops! - 420 00:18:11,340 --> 00:18:14,270 guztiak bihurtzen eraginkortasunez ezabatu. 421 00:18:14,270 --> 00:18:17,220 Eta hau ezin dugu uste, orain galdera markak nork daki zeren 422 00:18:17,220 --> 00:18:18,720 zer memoria horren bihurtu dugu. 423 00:18:18,720 --> 00:18:22,130 Izan ere, askotan deitu dut funtzioak getstring beste. 424 00:18:22,130 --> 00:18:24,750 Eta berehala deituko dudan bezala, beste batzuk getstring baino funtzioa, agian ez 425 00:18:24,750 --> 00:18:28,860 bereziki, programa honetan begiratu besterik ez dugu baina, ziur aski, beste beste batzuk 426 00:18:28,860 --> 00:18:34,180 funtzioa azkenean baliteke ematen pila in situ etorkizunean. 427 00:18:34,180 --> 00:18:39,410 >> Beraz, ezin da getstring azalera izatea Pilan D-A-V-I-D nuke, zeren 428 00:18:39,410 --> 00:18:41,040 berehala galduko sarbidea. 429 00:18:41,040 --> 00:18:43,720 Baina badakigu getstring bakarrik zer? 430 00:18:43,720 --> 00:18:47,220 Ez da itzuli Niri sei pertsonaiak. 431 00:18:47,220 --> 00:18:51,090 Zer da zuen benetan itzuli azken ordua ondorioztatu dugu? 432 00:18:51,090 --> 00:18:52,480 Lehenengoa helbidea. 433 00:18:52,480 --> 00:18:56,650 Beraz, nolabait, noiz getstring deitzen duzu, memoria zatia da aldi baterako 434 00:18:56,650 --> 00:18:59,620 katea, erabiltzaile mota eta hori eta gero itzuli da helbidea. 435 00:18:59,620 --> 00:19:02,930 Eta bihurtzen denean nahi duzu Funtzio honek memoria esleitu 436 00:19:02,930 --> 00:19:08,390 modu eta pertsonari deitzen bueltan funtzioa, helbide 437 00:19:08,390 --> 00:19:11,870 memoria zatia dela, zu erabat ezin jarri pila in hartan 438 00:19:11,870 --> 00:19:14,750 behean, funtzionalki delako besterik ez da ez zurea bihurtu Oso joan 439 00:19:14,750 --> 00:19:17,800 azkar, beraz, seguruenik dezakezu asmatzeko non ziurrenik gara zozketa joan 440 00:19:17,800 --> 00:19:20,130 ordez, llamado zeure du. 441 00:19:20,130 --> 00:19:25,290 >> Beraz, zure memoria en beheko arteko diseinua eta zure memoria en goiko 442 00:19:25,290 --> 00:19:26,820 diseinua segmentu sorta oso bat dira. 443 00:19:26,820 --> 00:19:29,270 Pila bat da, eta eskuineko gainean zeure da. 444 00:19:29,270 --> 00:19:33,680 Eta zeure bat besterik ez da, hainbat zatika memoria hori ez funtzioak erabiltzen 445 00:19:33,680 --> 00:19:34,770 direnean, deitzen ari. 446 00:19:34,770 --> 00:19:38,100 Honez memoria epe luzean erabiltzen denean, ko funtzio batzuk hartu nahi duzun 447 00:19:38,100 --> 00:19:42,700 memoria eta gai izango an zintzilikatzeko da gainean kontrola galdu gabe. 448 00:19:42,700 --> 00:19:45,550 >> Orain agian ezin duzu berehala ikusten hau ez dela 449 00:19:45,550 --> 00:19:48,060 perfektua diseinu bat egotea. 450 00:19:48,060 --> 00:19:51,350 Zure programa egotzitako memoria gisa, pila, edo deitu duzun bezala, gero eta 451 00:19:51,350 --> 00:19:55,540 Funtzio gehiago, edo bestela, esleitu gisa da malloc batera zeure gisa off memoria 452 00:19:55,540 --> 00:20:00,690 getstring da, zer egiten ari da argi eta garbi, badirudi saihestezina izango da arazoa? 453 00:20:00,690 --> 00:20:00,860 >> Eskubidea. 454 00:20:00,860 --> 00:20:03,150 Izan ere, hala nola gezi horiek elkar seinalatuz 455 00:20:03,150 --> 00:20:04,380 ez du Bode ondo. 456 00:20:04,380 --> 00:20:08,630 Eta, hain zuzen ere, oso azkar izan dugu huts modu kopurua edozein programa bat. 457 00:20:08,630 --> 00:20:12,050 Izan ere, izan dezake dugula uste dut honek ustekabean egin ondoren. 458 00:20:12,050 --> 00:20:14,020 Edo ez bada, utzi egin nahita orain. 459 00:20:14,020 --> 00:20:21,330 Let me aurrera idazten eta super azkar Programa bat izeneko dontdothis.c. 460 00:20:21,330 --> 00:20:26,730 Eta orain, joan naiz eta hemen ez zorrotz artean, stdio.h. 461 00:20:26,730 --> 00:20:32,620 Funtzioa foo hartzen aldarrika dezagun argumentuak ez du, hau da, 462 00:20:32,620 --> 00:20:34,040 baita hutsunea adierazten du. 463 00:20:34,040 --> 00:20:37,830 >> Eta gauza bakarra da foo egingo da dei foo, ziurrenik ez da 464 00:20:37,830 --> 00:20:39,100 smartest ideia, baina hain da. 465 00:20:39,100 --> 00:20:40,490 Ent hutsune nagusia. 466 00:20:40,490 --> 00:20:45,270 Orain gauza bakarra da nagusira joan egin foo deitzen da baita ere. 467 00:20:45,270 --> 00:20:51,050 Eta besterik Jaurtiketa egiteko, joan naiz Aurrera eta hemen esan printf "Kaixo tik 468 00:20:51,050 --> 00:20:52,340 foo ". 469 00:20:52,340 --> 00:20:52,890 >> Ados. 470 00:20:52,890 --> 00:21:00,160 Beraz, bada, ez dut akatsik egin, Egin dontdothis dot barra. 471 00:21:00,160 --> 00:21:01,960 Eta utzi egin da handiagoa leihoan - 472 00:21:01,960 --> 00:21:03,210 dot barra, dontdothis. 473 00:21:03,210 --> 00:21:07,590 474 00:21:07,590 --> 00:21:08,840 Goazen. 475 00:21:08,840 --> 00:21:10,940 476 00:21:10,940 --> 00:21:11,890 Ai ene. 477 00:21:11,890 --> 00:21:13,100 Dirudienez, hau egin ahal izango duzu. 478 00:21:13,100 --> 00:21:15,190 Madarikatua da. 479 00:21:15,190 --> 00:21:16,190 Ados. 480 00:21:16,190 --> 00:21:16,580 Itxaron. 481 00:21:16,580 --> 00:21:17,370 Stand by. 482 00:21:17,370 --> 00:21:18,270 Egin dugu - 483 00:21:18,270 --> 00:21:20,110 Berau erabili genuen Egin batera. 484 00:21:20,110 --> 00:21:22,050 >> [Suspiros] 485 00:21:22,050 --> 00:21:25,110 >> Ezagutzen dut, baina uste dut besterik ezabatu duten. 486 00:21:25,110 --> 00:21:28,410 Uh, bai. 487 00:21:28,410 --> 00:21:30,660 Madarikatua da. 488 00:21:30,660 --> 00:21:32,640 Rob hau konpontzeko. 489 00:21:32,640 --> 00:21:34,678 Zer? 490 00:21:34,678 --> 00:21:35,928 Oso erraza da. 491 00:21:35,928 --> 00:21:43,820 492 00:21:43,820 --> 00:21:47,360 Bai, optimizazioa aktibatuta off dugu. 493 00:21:47,360 --> 00:21:48,970 Ados, stand bye. 494 00:21:48,970 --> 00:21:49,950 Orain hobeto sentitzen naiz. 495 00:21:49,950 --> 00:21:51,390 Ados. 496 00:21:51,390 --> 00:21:51,780 Guztiak eskubidea. 497 00:21:51,780 --> 00:21:53,430 >> Hargatik konpilatu hau - 498 00:21:53,430 --> 00:21:55,880 Egin duzun dontdothis. 499 00:21:55,880 --> 00:22:00,090 Hau izenez aldatu beharko duzu besterik gabe, une batean dothis.c. 500 00:22:00,090 --> 00:22:00,710 Ez dago goaz. 501 00:22:00,710 --> 00:22:01,240 Eskerrik asko. 502 00:22:01,240 --> 00:22:02,050 Ados. 503 00:22:02,050 --> 00:22:05,480 Izan zen duten I inprimatzeko beraz, zerbait atera zen benetan besterik 504 00:22:05,480 --> 00:22:08,150 moteldu dituen prozesua dugu iritsi litzateke puntu horretan. 505 00:22:08,150 --> 00:22:08,510 Ados. 506 00:22:08,510 --> 00:22:08,870 Phew! 507 00:22:08,870 --> 00:22:11,180 >> Beraz, zer da benetan gertatzen ari da? 508 00:22:11,180 --> 00:22:14,440 Arrazoia ez dago, besterik gabe, bat alde batera bezala, ezer egin sarrerari dagokionez, eta 509 00:22:14,440 --> 00:22:17,270 irteera joera motelagoa izan nahi duzulako izan karaktereak idatzi du 510 00:22:17,270 --> 00:22:18,600 pantailan, korritu ditu. 511 00:22:18,600 --> 00:22:21,720 Hain luze ipuinean, izan nuen benetan gertatu da, beraz, pazientzia, izango genuke 512 00:22:21,720 --> 00:22:23,260 ikusten da azken emaitza hau ere. 513 00:22:23,260 --> 00:22:26,220 Orain dela inprimatu-ak duen ibilaldi lortu nuen, ikusten dugu berehala. 514 00:22:26,220 --> 00:22:28,410 Beraz, zergatik ez da hau gertatzen. 515 00:22:28,410 --> 00:22:31,300 Beno, azalpen errazak, jakina, foo da hori beharko ez 516 00:22:31,300 --> 00:22:32,500 bera izango deituz. 517 00:22:32,500 --> 00:22:34,470 >> Gaur egun, oro har, hau errekurtsio da. 518 00:22:34,470 --> 00:22:36,970 Eta aste pare bat pentsatu genuen Duela recursive ona da. 519 00:22:36,970 --> 00:22:40,330 Errekurtsio hau modu magikoa da zeure burua adierazteko super succinctly. 520 00:22:40,330 --> 00:22:41,400 Eta lan egiten besterik ez da. 521 00:22:41,400 --> 00:22:45,060 Baina ez dago guztien ezaugarri nagusietako bat du recursive programak hitz egin dugu 522 00:22:45,060 --> 00:22:48,260 buruz, eta begiratu batean, beraz, orain arte, eta horrek izan zen, zer egiten dute? 523 00:22:48,260 --> 00:22:52,610 A-oinarria kasuan, hau da, batzuetan gogorra kodetuak Kasu horretan, egoera batzuetan esan 524 00:22:52,610 --> 00:22:56,210 ez deitu foo, hau da, argi eta garbi ez da kasua hemen. 525 00:22:56,210 --> 00:22:58,920 >> Beraz, zer da benetan gertatzen ari dena Argazki hau dagokionez? 526 00:22:58,920 --> 00:23:01,790 Beno, orduan nagusia foo deitzen da, memoria zati bat jasotzen du. 527 00:23:01,790 --> 00:23:04,150 Noiz foo foo deiak, baina lortzen memoria-xerra bat. 528 00:23:04,150 --> 00:23:06,430 Noiz foo foo deiak, xerra bat lortzen da. 529 00:23:06,430 --> 00:23:07,080 Xerra bat lortzen da. 530 00:23:07,080 --> 00:23:08,120 Xerra bat lortzen da. 531 00:23:08,120 --> 00:23:09,460 Foo da inoiz itzuli. 532 00:23:09,460 --> 00:23:12,160 Inoiz ari gara horietako bat ezabatu tik pila fotograma. 533 00:23:12,160 --> 00:23:15,930 Beraz, zeure bidez ari gara, ez putz nork daki zer gehiago, eta aipatu nahi 534 00:23:15,930 --> 00:23:19,600 gure mugetatik gara overstepping izenekoak memoria segmentu. 535 00:23:19,600 --> 00:23:21,790 ERROREA joan segmentazio faltsua. 536 00:23:21,790 --> 00:23:24,110 >> Konponbidea ez da, beraz, argi eta garbi, ez egin hori. 537 00:23:24,110 --> 00:23:28,830 Baina inplikazio handiagoa du, hori bai, ez da ez dago erabat muga batzuk, 538 00:23:28,830 --> 00:23:32,470 bada ere, ez da oso ondo definitu, nola jo askotan funtzio bat dei dezakezu 539 00:23:32,470 --> 00:23:34,970 programa, zenbat aldiz funtzio bat berak dei daiteke. 540 00:23:34,970 --> 00:23:38,430 Beraz, nahiz eta predikatzeko errekurtsio genuen hau potentzialki magiko gisa, gauza bat 541 00:23:38,430 --> 00:23:41,870 aste pare duela sigma du funtzioa, eta datuak eskuratzeko dugu 542 00:23:41,870 --> 00:23:45,270 egiturak eta CS50, beste bat ikusiko duzu ditu eskaerak, ez da 543 00:23:45,270 --> 00:23:46,500 nahitaez onena. 544 00:23:46,500 --> 00:23:50,070 Zeren eta funtzio bat deitzen du bere burua, deitzen dio berak, nahiz eta han-base bat da 545 00:23:50,070 --> 00:23:54,860 kasu horretan, ez duzu hit bada, kasu horretan, oinarri 1.000 deiak edo 10.000 deiak, arabera 546 00:23:54,860 --> 00:23:58,800 duten aldia exekutatu agian gela Zure deiturikoak pila eta hit on 547 00:23:58,800 --> 00:24:00,400 memoria segmentu beste batzuk. 548 00:24:00,400 --> 00:24:03,950 Beraz, ez da gehiegi diseinua merkataritza-off dotorezia artean eta artean 549 00:24:03,950 --> 00:24:06,920 zure sendotasuna ezartzeko. 550 00:24:06,920 --> 00:24:10,780 >> Beraz, ez dago arazotxo bat, edo da zer dugu Gotcha beste 551 00:24:10,780 --> 00:24:11,720 izan da, beraz, orain arte egiten ari dira. 552 00:24:11,720 --> 00:24:12,980 Noiz getstring deitu nuen - 553 00:24:12,980 --> 00:24:15,120 dezagun atzera me-kaixo 2. 554 00:24:15,120 --> 00:24:18,170 Nabarituko dut getstring deituz, duen helbide bat itzuli egin da. 555 00:24:18,170 --> 00:24:20,730 Eta gaur aldarrikatzen dugu helbide zeure bada. 556 00:24:20,730 --> 00:24:24,480 Eta orain naiz inprimatzen du helbide hartan katea. 557 00:24:24,480 --> 00:24:27,000 Baina inoiz ez dugu deitu getstring kontrakoa. 558 00:24:27,000 --> 00:24:30,850 Inoiz ez dugu izan, funtzio bat bezala calll to ungetstring, non atzera eskua duzu 559 00:24:30,850 --> 00:24:31,610 memoria hori. 560 00:24:31,610 --> 00:24:33,250 Baina sinceramente dugu ziurrenik izan behar zuen. 561 00:24:33,250 --> 00:24:37,390 Mantendu dugu ordenagailuan galdetuz Zeren memoria, norbaitek bezalako modu 562 00:24:37,390 --> 00:24:40,830 getstring baina inoiz eman atzera, ziur aski, hori gehiegi da bound to ekar 563 00:24:40,830 --> 00:24:42,970 Horren bidez, arazoak agortuko dugu memoria. 564 00:24:42,970 --> 00:24:46,140 >> Eta, hain zuzen ere, horiek ahal dugun tresna berria, eta horren erabilera-arazoak 565 00:24:46,140 --> 00:24:47,640 apur bat críptica idatzi da. 566 00:24:47,640 --> 00:24:50,960 Baina aurrera me, eta zipriztintzen sortu besterik gabe, une batean pantailan. 567 00:24:50,960 --> 00:24:56,940 Aurrera joan eta exekutatu Valgrind dut Parametro horren lehen komando batekin 568 00:24:56,940 --> 00:25:00,260 lerroko izena da duen programa kaixo-2. 569 00:25:00,260 --> 00:25:02,650 Eta, zoritxarrez, oso irteera da atrociously 570 00:25:02,650 --> 00:25:04,290 ez da ona, arrazoi konplexuak. 571 00:25:04,290 --> 00:25:06,280 Beraz, gaizki dagoela ikusi dugu. 572 00:25:06,280 --> 00:25:07,530 David da nire izena aipatu. 573 00:25:07,530 --> 00:25:09,760 Beraz, programaren benetan exekutatzen. 574 00:25:09,760 --> 00:25:11,180 Eta orain, irteera hau lortu dugu. 575 00:25:11,180 --> 00:25:13,400 >> Beraz Valgrind antzekoa da to GDB espirituz. 576 00:25:13,400 --> 00:25:14,950 Ez da berez araztaileak bat. 577 00:25:14,950 --> 00:25:16,270 Baina memoria checker bat da. 578 00:25:16,270 --> 00:25:20,140 Programa bat zure exekutatu egingo da programatu eta esango galdetu baduzu 579 00:25:20,140 --> 00:25:23,860 ordenagailuaren memoria entregatu eta inoiz ez da atzera, eta, beraz duzula zentzua 580 00:25:23,860 --> 00:25:24,570 leak memoria bat. 581 00:25:24,570 --> 00:25:26,240 Eta memoria filtrazioen joera txarra izan. 582 00:25:26,240 --> 00:25:29,120 Eta ordenagailuen erabiltzaile izan da duzu ziurrenik sentitu hau, izan ala ez duzu 583 00:25:29,120 --> 00:25:30,300 Mac edo PC bat. 584 00:25:30,300 --> 00:25:33,730 Erabili izan duzu inoiz zure ordenagailuaren eta ez, berriz, hainbat berrabiarazi 585 00:25:33,730 --> 00:25:36,820 egun, edo, besterik gabe duzun got asko programak exekutatzen, eta madarikatua gauza 586 00:25:36,820 --> 00:25:42,360 egiteko artezteko geldialdi bat motelduz, edo, gutxienez, super gogaikarriak da erabili, izan ere, 587 00:25:42,360 --> 00:25:44,350 dena besterik lortu super motela. 588 00:25:44,350 --> 00:25:46,260 >> Orain dela arrazoi kopurua edozein izan daiteke. 589 00:25:46,260 --> 00:25:49,600 Infinitua begizta, akats bat izan liteke norbaiten kodea, edo, besterik gabe, eta 590 00:25:49,600 --> 00:25:53,250 ari zaren gehiago erabiliz, esan liteke memoria, edo saiatzen da, zure baino 591 00:25:53,250 --> 00:25:54,920 ordenagailua du, benetan. 592 00:25:54,920 --> 00:25:57,770 Eta, agian, beste programa batzuk akats bat da memoria hori mantentzeko eskatuz. 593 00:25:57,770 --> 00:26:02,480 Urte nabigatzaile ziren notorio for hau, memoria gero eta gehiago eskatzen 594 00:26:02,480 --> 00:26:03,870 baina inoiz ez da gozamenerako. 595 00:26:03,870 --> 00:26:07,220 Ziur asko, besterik ez baduzu finitu bat memoria, ezin duzu eskatu 596 00:26:07,220 --> 00:26:09,990 infinituki asko aldiz memoria duten batzuk. 597 00:26:09,990 --> 00:26:13,070 >> Eta, beraz, hemen zer ikusten duzu, nahiz eta berriro Valgrind irteera da 598 00:26:13,070 --> 00:26:17,490 alferrik konplexua begiratu at Lehenengo, interesgarri hau zatia da. 599 00:26:17,490 --> 00:26:18,890 Montón - 600 00:26:18,890 --> 00:26:20,060 irtetean erabiltzen. 601 00:26:20,060 --> 00:26:22,810 Beraz, hemen zenbat memoria zen zeure erabilera honetan; 602 00:26:22,810 --> 00:26:24,300 denbora nire programa amaitu da - 603 00:26:24,300 --> 00:26:27,280 itxuraz sei bloke bat byte. 604 00:26:27,280 --> 00:26:28,710 Beraz, nire esku olatu noa zer at bloke bat da. 605 00:26:28,710 --> 00:26:31,270 Uste da, besterik gabe pusketa bat, bat gehiago zatia hitz teknikoak. 606 00:26:31,270 --> 00:26:33,140 Baina sei byte - 607 00:26:33,140 --> 00:26:36,870 Zein dira sei byte duten ziren oraindik erabileran? 608 00:26:36,870 --> 00:26:37,390 >> Zehazki. 609 00:26:37,390 --> 00:26:41,520 D-A-V-I-D backslash zero, bost gutun izena + null amaiera da. 610 00:26:41,520 --> 00:26:46,350 Beraz, programa honen Valgrind nabaritu dut sei byte eskatu, itxuraz, erabiltzaileak 611 00:26:46,350 --> 00:26:48,950 getstring modu bat, baina inoiz ez bizkarra eman zien. 612 00:26:48,950 --> 00:26:52,030 Eta, hain zuzen ere, hau ez da, beraz, begi-bistakoa da nire programa ez da hiru 613 00:26:52,030 --> 00:26:53,590 lerroak, baina 300 lerro da. 614 00:26:53,590 --> 00:26:56,920 Beraz, benetan, ezin dugu eman komando beste lerroko nahi Valgrind 615 00:26:56,920 --> 00:26:58,290 make it more verbose. 616 00:26:58,290 --> 00:26:59,760 Apur bat gogaikarria da gogoratzen. 617 00:26:59,760 --> 00:27:01,580 Baina nik ez bada - 618 00:27:01,580 --> 00:27:01,930 ikus dezagun. 619 00:27:01,930 --> 00:27:03,540 Leak - 620 00:27:03,540 --> 00:27:05,030 Zen Leak - 621 00:27:05,030 --> 00:27:07,580 are gehiago, ez dut gogoratzen zer da eskuz egiten. 622 00:27:07,580 --> 00:27:08,550 >> - Leak check-berdin betea. 623 00:27:08,550 --> 00:27:10,180 Bai, eskerrik asko. 624 00:27:10,180 --> 00:27:12,520 - Leak check-berdin betea. 625 00:27:12,520 --> 00:27:13,800 Sartu. 626 00:27:13,800 --> 00:27:14,940 Berean, programa exekutatzen ari da. 627 00:27:14,940 --> 00:27:16,180 David Idatzi berriro. 628 00:27:16,180 --> 00:27:17,660 Orain pixka bat xehetasun gehiago ikusten dut. 629 00:27:17,660 --> 00:27:20,890 Baina zeure beheko laburpenean, eta horrek da, lau berdin-berdin - Ah, 630 00:27:20,890 --> 00:27:22,120 hau polita mota da. 631 00:27:22,120 --> 00:27:25,460 Orain Valgrind benetan bila pixka bat nire kodean gogorragoa da. 632 00:27:25,460 --> 00:27:29,580 Eta hori da esaten, antza denez, lerroan malloc - 633 00:27:29,580 --> 00:27:30,580 Zooma dugu. 634 00:27:30,580 --> 00:27:31,980 Lerroan - 635 00:27:31,980 --> 00:27:32,930 ez dugu ikusten zer lerroa da. 636 00:27:32,930 --> 00:27:35,110 Baina malloc lehen culprit da. 637 00:27:35,110 --> 00:27:38,630 Ez dago malloc blog-a da. 638 00:27:38,630 --> 00:27:39,810 >> Guztiak eskubidea? 639 00:27:39,810 --> 00:27:40,450 Ados, ez. 640 00:27:40,450 --> 00:27:40,940 Eskuin? 641 00:27:40,940 --> 00:27:42,520 Getstring deitu nuen. 642 00:27:42,520 --> 00:27:44,460 getstring itxuraz deiak malloc. 643 00:27:44,460 --> 00:27:47,800 Beraz, zer kode-lerro itxuraz izateagatik errua at 644 00:27:47,800 --> 00:27:49,050 egotzitako memoria hau? 645 00:27:49,050 --> 00:27:51,560 646 00:27:51,560 --> 00:27:55,540 Demagun duenak idatzi malloc ha sido inguruan nahikoa luzea dela 647 00:27:55,540 --> 00:27:56,390 ez da bere errua. 648 00:27:56,390 --> 00:27:57,520 Beraz, ziurrenik, ez da nirea. 649 00:27:57,520 --> 00:28:02,000 cs50.c en getstring - hori da, beraz, artxibatzen nonbait ordenagailuan - 650 00:28:02,000 --> 00:28:05,210 line 286 dirudi erruduna izango da. 651 00:28:05,210 --> 00:28:08,140 Orain Demagun cs50 izan dela denbora duin zenbatekoa, beraz, inguruan 652 00:28:08,140 --> 00:28:09,720 gehiegi dugu erasoezinak. 653 00:28:09,720 --> 00:28:14,080 Eta, beraz, seguruenik ez getstring en bug duten datza, baizik eta en 654 00:28:14,080 --> 00:28:17,810 kaixo-2.c line 18. 655 00:28:17,810 --> 00:28:20,670 >> Hargatik begirada batean zer linea 18 izan zen. 656 00:28:20,670 --> 00:28:21,130 Oh. 657 00:28:21,130 --> 00:28:27,130 Nolabait, lerro hau ez da zertan buggy, berez, baina arrazoia da 658 00:28:27,130 --> 00:28:28,630 memory leak duten atzean. 659 00:28:28,630 --> 00:28:32,140 Beraz, super, besterik gabe, zer egingo intuizioa konponbidea hemen? 660 00:28:32,140 --> 00:28:34,710 Ari gara memoria galtzen eskatuz, ez ziren inoiz bizkarra emanez, eta badirudi bat izan nahi 661 00:28:34,710 --> 00:28:37,940 Arazo denbora nire ordenagailuan baino gehiago delako agortuko baliteke memoria, agian motela 662 00:28:37,940 --> 00:28:42,110 behera, gauza txarrak gerta liteke, bai, zer simple intuitiboa da irtenbidea? 663 00:28:42,110 --> 00:28:43,140 Eman besterik ez du atzera. 664 00:28:43,140 --> 00:28:44,770 >> Nola askatu duzun memoria hori? 665 00:28:44,770 --> 00:28:49,970 Beno, zorionez, nahiko erraza da besterik esan free izena. 666 00:28:49,970 --> 00:28:51,260 Eta inoiz ez dugu hau egin aurretik. 667 00:28:51,260 --> 00:28:55,890 Baina, funtsean, ezin duzu uste malloc kontrakoa da doan. 668 00:28:55,890 --> 00:28:58,030 free kontrakoa da memoria esleitzean. 669 00:28:58,030 --> 00:28:59,540 Beraz, orain utzi hau konpilatu me. 670 00:28:59,540 --> 00:29:02,050 Egin kaixo-2. 671 00:29:02,050 --> 00:29:04,620 Utzi exekutatu berriro. kaixo-2 David. 672 00:29:04,620 --> 00:29:07,290 Beraz, lan egiten hasi dela dirudi zehazki modu berean. 673 00:29:07,290 --> 00:29:11,180 Baina joan nintzen itzuliz gero Valgrind eta berriro exekutatu nire berri den komandoa berean 674 00:29:11,180 --> 00:29:14,720 konpilatutako programa, mekanografia nire aurretik izen - 675 00:29:14,720 --> 00:29:15,370 politak. 676 00:29:15,370 --> 00:29:16,760 Montón laburpena - 677 00:29:16,760 --> 00:29:17,740 irtetean erabiltzen - 678 00:29:17,740 --> 00:29:19,370 zero bloke zero byte. 679 00:29:19,370 --> 00:29:21,840 Eta hau super polita da, guztiak zeure bloke askatu zituzten. 680 00:29:21,840 --> 00:29:23,480 Filtrazioen ez dira posible. 681 00:29:23,480 --> 00:29:27,200 >> Beraz, datozen, ez da arazo Set 4, Baina arazoa Ezarri 5, auzitegi batera 682 00:29:27,200 --> 00:29:30,740 eta aurrerantzean, hori ere izango da zure zuzentasuna neurri 683 00:29:30,740 --> 00:29:33,630 programa, ala ez duzu edo ez dute memoria filtrazioak. 684 00:29:33,630 --> 00:29:36,900 Baina, zorionez, ez bakarrik dezakezu Arrazoia Horietako intuizioa, horren bidez, 685 00:29:36,900 --> 00:29:40,430 da, dudarik gabe, programa txiki erraza baina programak handiagoa zailagoa da, 686 00:29:40,430 --> 00:29:43,860 Valgrind, horiek handiagoak programetan, zu identifikatzeko lagungarria izan daiteke 687 00:29:43,860 --> 00:29:45,360 bereziki arazoa. 688 00:29:45,360 --> 00:29:47,500 >> Baina bada beste arazo bat da agian sortzen. 689 00:29:47,500 --> 00:29:51,245 Let me ireki fitxategia hemen, hau da, berriro ere, zertxobait adibide erraz bat. 690 00:29:51,245 --> 00:29:53,760 Baina zer zentratu programa honek. 691 00:29:53,760 --> 00:29:55,190 Hau deitzen da memory.c. 692 00:29:55,190 --> 00:29:58,380 Etiketa geroago, gaur egun honetan dizugu en gaur egun, iturburu-kodea zip. 693 00:29:58,380 --> 00:30:01,610 Eta nabarituko dute I izeneko funtzio bat f duten argumentu eta 694 00:30:01,610 --> 00:30:02,800 itzultzen ezer. 695 00:30:02,800 --> 00:30:07,240 Linea 20, itxuraz naiz geratuko to int bat eta x deituz erakuslea. 696 00:30:07,240 --> 00:30:09,570 Esleitzea dut bueltan da malloc balioa. 697 00:30:09,570 --> 00:30:14,590 Eta besterik gabe, argi eta garbi izan behar du, zenbat byte am Itzuli ziurrenik ditut malloc tik 698 00:30:14,590 --> 00:30:17,080 egoera horretan? 699 00:30:17,080 --> 00:30:18,040 >> Seguruenik, 40. 700 00:30:18,040 --> 00:30:18,840 Non, hori lortzeko duzu? 701 00:30:18,840 --> 00:30:22,410 Beno, gogoratzen baduzu int bat da, sarritan 4 byte, gutxienez, ez da bertan 702 00:30:22,410 --> 00:30:25,110 tresnaren, 10 aldiz 4 da, jakina, 40. 703 00:30:25,110 --> 00:30:28,920 Beraz malloc helbide itzuli bat memoria zatia eta gordetzeko duten 704 00:30:28,920 --> 00:30:30,800 aurre, azken finean, x. 705 00:30:30,800 --> 00:30:32,570 Beraz, argi izan, zer gero, gertatzen ari da? 706 00:30:32,570 --> 00:30:34,990 Beno, goazen atzera aldatzeko me gure argazki hemen. 707 00:30:34,990 --> 00:30:38,150 Let besterik ez dit nire marrazteko behealdean ordenagailuaren memoria, let me aurrera eta 708 00:30:38,150 --> 00:30:42,990 marraztu laukizuzen osoan duten adierazten nire RAM guztia. 709 00:30:42,990 --> 00:30:44,790 >> Esan dugu pila duen behean dago. 710 00:30:44,790 --> 00:30:47,010 Eta ez dago testu segmentu bat hasi uninitialized datuak. 711 00:30:47,010 --> 00:30:49,880 Baina besterik ez dut abstraktu horiek joan beste gauza batzuk ihes dot, dot dot gisa. 712 00:30:49,880 --> 00:30:53,470 Besterik ez naiz honen erreferentzia joan goialdean zeure gisa. 713 00:30:53,470 --> 00:30:57,070 Eta, ondoren, irudi hau behealdean, nagusia irudikatzeko, joan naiz 714 00:30:57,070 --> 00:30:59,880 emateko xerra memoria pilan. 715 00:30:59,880 --> 00:31:03,150 F, emateko xerra bat dut pila buruzko memoria. 716 00:31:03,150 --> 00:31:05,140 Orain, nire kontsultatu dut iturburu-kodea berriro. 717 00:31:05,140 --> 00:31:07,170 Zer dira nagusia aldagai lokala? 718 00:31:07,170 --> 00:31:10,710 Antza denez, ez da ezer, eta, beraz, hau da xerra eraginkortasunez hutsik dago edo ez, nahiz eta handi gisa 719 00:31:10,710 --> 00:31:11,600 Nik dudan bezala marraztuko da. 720 00:31:11,600 --> 00:31:15,730 Baina f, tokiko aldagai bat daukat, hau da, x deitu. 721 00:31:15,730 --> 00:31:20,410 Beraz, aurrera eta F dut bat memoria zatia da, x deituz. 722 00:31:20,410 --> 00:31:24,680 >> Eta orain, 10 aldiz 4 malloc, Malloc 40, non da, beraz, 723 00:31:24,680 --> 00:31:25,430 memoria datozen? 724 00:31:25,430 --> 00:31:27,530 Ez dugu marrazten irudi bat like honen aurretik. 725 00:31:27,530 --> 00:31:31,140 Baina dezagun hori eraginkortasunez Hemen etorritakoak, beraz, 726 00:31:31,140 --> 00:31:33,170 bi, hiru, lau, bost. 727 00:31:33,170 --> 00:31:34,680 Eta orain, horietako 40 behar dut. 728 00:31:34,680 --> 00:31:37,540 Beraz, besterik ez dut egin dot, dot, dot iradokitzen ez dagoela, are gehiago da memoria 729 00:31:37,540 --> 00:31:39,350 atzera datozen zeure hasita. 730 00:31:39,350 --> 00:31:40,710 Orain zer helbidea da? 731 00:31:40,710 --> 00:31:42,620 Dezagun gure aukeratu arbitrarioak aurre, beti bezala - 732 00:31:42,620 --> 00:31:46,310 Ox123, nahiz eta seguruenik joan Zerbait guztiz ezberdina izango da. 733 00:31:46,310 --> 00:31:50,420 Hori byte lehen helbidea da memoria duten malloc dut galdetu. 734 00:31:50,420 --> 00:31:53,630 >> Beraz, azken finean, behin lerro 20 exekutatzen du, zer da, hitzez hitz 735 00:31:53,630 --> 00:31:57,170 x barruan gordetzen dira hemen? 736 00:31:57,170 --> 00:31:58,730 Ox123. 737 00:31:58,730 --> 00:32:00,370 Ox123. 738 00:32:00,370 --> 00:32:01,550 Eta idi da izanarren. 739 00:32:01,550 --> 00:32:03,200 Esan nahi du, besterik ez da hemen bat hamaseitarra kopurua. 740 00:32:03,200 --> 00:32:06,490 Baina, zer da garrantzitsua da zer esan denda dut x, eta horrek tokian tokiko aldagai bat da. 741 00:32:06,490 --> 00:32:10,260 Baina, bere datu-mota, berriz, int baten helbide bat da. 742 00:32:10,260 --> 00:32:12,710 Beno, Ox123 gorde nahi dut. 743 00:32:12,710 --> 00:32:16,610 Baina, berriro ere, hori da apur bat ere bada konplexua alferrik, joan badut 744 00:32:16,610 --> 00:32:21,490 atzera, abstraktua dugu hau nahiko urrun arrazoiz eta besterik esan x dela 745 00:32:21,490 --> 00:32:23,910 memoria zatia duen erakuslea. 746 00:32:23,910 --> 00:32:24,070 >> Ados. 747 00:32:24,070 --> 00:32:26,230 Orain esku galdera honako hau da: - 748 00:32:26,230 --> 00:32:29,910 linea 21, bihurtzen da, buggy da. 749 00:32:29,910 --> 00:32:31,160 Zergatik? 750 00:32:31,160 --> 00:32:34,890 751 00:32:34,890 --> 00:32:36,930 >> Sentitzen dut? 752 00:32:36,930 --> 00:32:38,640 Ez du - 753 00:32:38,640 --> 00:32:40,390 esan berriro. 754 00:32:40,390 --> 00:32:41,240 Beno, ez da doan. 755 00:32:41,240 --> 00:32:42,350 Beraz, bigarren da, baina. 756 00:32:42,350 --> 00:32:45,000 Beraz, ez da beste bat, baina zehazki line 21. 757 00:32:45,000 --> 00:32:49,480 758 00:32:49,480 --> 00:32:50,040 >> Zehazki. 759 00:32:50,040 --> 00:32:54,980 Kode-lerro hau sinple bat besterik ez da bufferraren gainezkatzea, buffer bat inbaditu. 760 00:32:54,980 --> 00:32:57,050 Buffer bat besterik memoria pusketa bat esan nahi du. 761 00:32:57,050 --> 00:33:01,520 Baina memoria zatia duten tamaina 10, 10 osokoak, eta horrek esan nahi dugu 762 00:33:01,520 --> 00:33:05,350 sartu indizea sintaktiko azukrea erabiliz array idazkera du, plazan 763 00:33:05,350 --> 00:33:09,220 Parentesi, sarbidea izango duzu parentesi x 0 x 1 x egokirik, 764 00:33:09,220 --> 00:33:10,390 parentesi dot, dot, dot. 765 00:33:10,390 --> 00:33:13,270 x 9 tarte handiena da. 766 00:33:13,270 --> 00:33:17,680 Hala bada tarte x 10, egiten dut, non Benetan ari naiz memorian joan? 767 00:33:17,680 --> 00:33:19,120 >> Beno, izan dut 10 int bada - 768 00:33:19,120 --> 00:33:21,070 dezagun benetan marraztu guztiak horiek hemen. 769 00:33:21,070 --> 00:33:22,700 Beraz, lehen bost izan zen. 770 00:33:22,700 --> 00:33:24,660 Hona hemen beste bost ints. 771 00:33:24,660 --> 00:33:29,580 Beraz, tarte x 0 da hemen. x tarte 1 hemen. x tarte 9 da hemen. x-tarte 772 00:33:29,580 --> 00:33:37,960 10 Hemen da, eta horrek esan nahi du, kontatzen dut, linea 21, ordenagailua jarri 773 00:33:37,960 --> 00:33:39,400 zenbakia, non? 774 00:33:39,400 --> 00:33:42,010 Kopurua 0 non? 775 00:33:42,010 --> 00:33:43,380 Beno, 0 da, bai. 776 00:33:43,380 --> 00:33:45,460 Baina, hain zuzen ere, bere 0 kointzidentzia moduko bat da. 777 00:33:45,460 --> 00:33:47,140 Zenbakia izan daiteke 50, denok zaindu. 778 00:33:47,140 --> 00:33:50,480 Baina jarri x tarte ari gara saiatzen 10, hau da, non honetan 779 00:33:50,480 --> 00:33:53,700 galdera ikurra marrazten da, eta horrek ez da gauza ona. 780 00:33:53,700 --> 00:33:57,070 Programa hori oso ondo ondorioz, huts. 781 00:33:57,070 --> 00:33:59,400 >> Orain, aurrera ikusi eta hau bada da, hain zuzen ere, zer gertatzen den. 782 00:33:59,400 --> 00:34:02,600 Ziurtatu memoria, geroztik fitxategia deitzen da memory.c. 783 00:34:02,600 --> 00:34:05,950 Goazen aurrera eta exekutatu programaren memoria. 784 00:34:05,950 --> 00:34:08,239 Beraz, zortea lortu dugu, benetan, dirudienez. 785 00:34:08,239 --> 00:34:09,340 Zorioneko lortu dugu. 786 00:34:09,340 --> 00:34:11,060 Baina ikus dezagun orain exekutatu bada Valgrind. 787 00:34:11,060 --> 00:34:14,170 Lehen begiratuan, nire programa agian Badirudi ezin hobeto zuzena izan behar du. 788 00:34:14,170 --> 00:34:18,010 Baina utzi niri exekutatu duen Valgrind - Leak check-berdin memoria beterik. 789 00:34:18,010 --> 00:34:20,110 >> Eta orain, hori exekutatu I - 790 00:34:20,110 --> 00:34:21,030 interesgarria da. 791 00:34:21,030 --> 00:34:26,800 Tamaina baliogabea 4 idazteko at linea 21 memory.c du. 792 00:34:26,800 --> 00:34:29,284 Line 21 memory.c zein da? 793 00:34:29,284 --> 00:34:30,340 Oh, interesgarria da. 794 00:34:30,340 --> 00:34:31,080 Baina itxaron. 795 00:34:31,080 --> 00:34:32,389 Tamaina 4, zer da hori aipatuz? 796 00:34:32,389 --> 00:34:34,969 Ez zuen besterik ez dut bat idatzi, baina tamaina 4 da. 797 00:34:34,969 --> 00:34:36,889 Zergatik da 4? 798 00:34:36,889 --> 00:34:39,280 Int da beti, eta hori da, zeren da, berriz ere, lau byte. 799 00:34:39,280 --> 00:34:42,510 Beraz Valgrind akats bat aurkitu dut, nire kodea at glancing, ez. 800 00:34:42,510 --> 00:34:45,040 Eta, agian, zure TF litzateke edo ez litzateke izango. 801 00:34:45,040 --> 00:34:48,469 Baina ziur zer aurkitu horretarako Valgrind egin dugu akats bat dago, nahiz eta 802 00:34:48,469 --> 00:34:52,719 genuen zorterik izan arren, eta ordenagailua erabaki du, eh, ez dut huts joan 803 00:34:52,719 --> 00:34:57,470 besterik ez delako bat byte, bat ukitu duzu int memoria merezi ez duzula 804 00:34:57,470 --> 00:34:58,550 benetan egin. 805 00:34:58,550 --> 00:35:00,380 >> Beno, zer gehiago da buggy hemen. 806 00:35:00,380 --> 00:35:01,180 Helbidea - 807 00:35:01,180 --> 00:35:03,190 hau zoro bat bilatzen helbidea ez da hamaseitarrean. 808 00:35:03,190 --> 00:35:06,890 Dagoela esan nahi du, besterik gabe, zeure nonbait dago zero ondoren tamaina 40 bloke bat byte 809 00:35:06,890 --> 00:35:07,620 esleitu. 810 00:35:07,620 --> 00:35:10,610 Let me zooma hemen, eta ikus hau da, pixka bat gehiago lagungarria da. 811 00:35:10,610 --> 00:35:11,410 Interesgarria da. 812 00:35:11,410 --> 00:35:15,600 40 byte dira behin betiko galdu galera erregistroa 1 de 1. 813 00:35:15,600 --> 00:35:17,840 Berriro ere, hitzak baino gehiago erabilgarria da hemen. 814 00:35:17,840 --> 00:35:21,350 Baina nabarmendu lerro oinarritzen da, non fokua ziurrenik behar dut nire 815 00:35:21,350 --> 00:35:24,070 bug beste arreta? 816 00:35:24,070 --> 00:35:26,570 Lerro bat 20 memory.c baten itxura du. 817 00:35:26,570 --> 00:35:30,990 >> Beraz, bada, atzera egingo dugu lerro 20, hori da bat lehenago identifikatu duzu. 818 00:35:30,990 --> 00:35:33,030 Eta ez da akatsak egotea. 819 00:35:33,030 --> 00:35:35,160 Baina hau dugu, alderantziz, bere ondorioak. 820 00:35:35,160 --> 00:35:38,790 Beraz, nola ez, behintzat, zuzendu dut akats horietako bat? 821 00:35:38,790 --> 00:35:42,240 Zer egin liteke linea 21 I ondoren? 822 00:35:42,240 --> 00:35:47,110 Do x libre nuen, beraz, atzera emateko memoria hori. 823 00:35:47,110 --> 00:35:49,230 Eta, nola ez, bug hau konpontzen dut? 824 00:35:49,230 --> 00:35:52,120 Behin betiko behar dut joan no urrunago 0 baino. 825 00:35:52,120 --> 00:35:53,670 Hargatik, eta saiatu me berriro exekutatu. 826 00:35:53,670 --> 00:35:56,080 Sentitzen dut, behin betiko joan no urrunago 9 baino. 827 00:35:56,080 --> 00:35:57,510 Ziurtatu memoria. 828 00:35:57,510 --> 00:36:00,650 Orain berrabiarazi Valgrind handiagoa leihoan. 829 00:36:00,650 --> 00:36:01,580 Eta orain begiratu. 830 00:36:01,580 --> 00:36:02,250 Niza. 831 00:36:02,250 --> 00:36:03,270 Zeure bloke guztiak askatu ziren. 832 00:36:03,270 --> 00:36:04,270 Filtrazioen ez dira posible. 833 00:36:04,270 --> 00:36:07,520 Eta hemen, batez ere, ez dago aipamenik ez da baliogabe eskubidea gehiago. 834 00:36:07,520 --> 00:36:09,820 >> Just Greedy lortzeko, eta egin dezagun Ikus erakustaldi bat baduzu 835 00:36:09,820 --> 00:36:11,050 ez du joan nahi - 836 00:36:11,050 --> 00:36:12,560 Zorioneko lortu nuen une bat duela. 837 00:36:12,560 --> 00:36:15,530 Izan ere, hori da, agian, 0 alferrik engainagarria. 838 00:36:15,530 --> 00:36:20,650 Dezagun, besterik gabe, egin 50, pixka bat arbitrarioa zenbakia, memoria egin dot barra memoria - 839 00:36:20,650 --> 00:36:21,410 oraindik lortu zortea. 840 00:36:21,410 --> 00:36:22,510 Ezer ez da bertan behera gelditzen. 841 00:36:22,510 --> 00:36:26,150 Demagun egin dut zerbait inozoak, eta 100 dut. 842 00:36:26,150 --> 00:36:30,360 Let memoria remake me, dot barra memoria - 843 00:36:30,360 --> 00:36:31,075 lortu zortea berriro. 844 00:36:31,075 --> 00:36:32,800 Nola 1.000? 845 00:36:32,800 --> 00:36:35,370 ints haratago, gutxi gorabehera, non egon behar dut? 846 00:36:35,370 --> 00:36:37,410 Ziurtatu memoria - 847 00:36:37,410 --> 00:36:38,570 madarikatua da. 848 00:36:38,570 --> 00:36:39,920 >> [Barreak] 849 00:36:39,920 --> 00:36:41,270 >> Ados. 850 00:36:41,270 --> 00:36:43,920 Ez dezagun mezurik inguruan jada. 851 00:36:43,920 --> 00:36:45,120 Berrabiarazi memoria. 852 00:36:45,120 --> 00:36:45,840 Ez dago goaz. 853 00:36:45,840 --> 00:36:46,410 Guztiak eskubidea. 854 00:36:46,410 --> 00:36:52,500 Beraz, itxuraz 100.000 ints indizea duzu non izan behar duzu izan haratago 855 00:36:52,500 --> 00:36:54,410 memoria, gauza txarrak gertatuko dira. 856 00:36:54,410 --> 00:36:56,430 Beraz, hau da, jakina, ez da gogor, azkar araua. 857 00:36:56,430 --> 00:36:58,190 Trial erabiliz mota izan dut eta akats iritsi. 858 00:36:58,190 --> 00:37:02,230 Baina honetan ere, luze istorio labur, ordenagailuaren memoria ere banatzen 859 00:37:02,230 --> 00:37:03,580 gauza horiek sartu izeneko segmentu. 860 00:37:03,580 --> 00:37:07,260 Eta batzuetan, ordenagailua benetan eman duzu, pixka bat gehiago memoria 861 00:37:07,260 --> 00:37:08,400 baino eskatuko dizu. 862 00:37:08,400 --> 00:37:12,170 Baina eraginkortasuna, besterik gabe, errazagoa da memoria gehiago lortzeko, baina bakarrik esango 863 00:37:12,170 --> 00:37:13,780 zaren zati bat lortzeko. 864 00:37:13,780 --> 00:37:16,370 >> Eta lortu duzu zortea izanez gero, batzuetan, beraz, egin ahal izango dute ukitu dezake 865 00:37:16,370 --> 00:37:17,795 memoria ez dela zurea. 866 00:37:17,795 --> 00:37:21,860 Bermea ez daukazu zer balio duten han bertan geratuko dira jartzen, izan ere, 867 00:37:21,860 --> 00:37:25,080 ordenagailua ustez oraindik ez da zurea, baina ez da nahitaez joan 868 00:37:25,080 --> 00:37:29,910 memoria segmentu beste hit-en informatika eta akats bat bultzatu bezalako 869 00:37:29,910 --> 00:37:31,710 hau hemen. 870 00:37:31,710 --> 00:37:32,060 Guztiak eskubidea. 871 00:37:32,060 --> 00:37:37,240 Edozein galdera, ondoren, memoria-on? 872 00:37:37,240 --> 00:37:37,590 >> Guztiak eskubidea. 873 00:37:37,590 --> 00:37:40,610 Ikus dezagun hemen, beraz, at zerbait gara for hartuz 874 00:37:40,610 --> 00:37:48,361 denbora luzez emango du, eta horrek izeneko cs50.h. fitxategi hau da, 875 00:37:48,361 --> 00:37:49,420 Beraz, hau fitxategi bat da. 876 00:37:49,420 --> 00:37:51,130 Hauek osotasunean mordo bat dira top sortu iruzkinak. 877 00:37:51,130 --> 00:37:53,900 Eta hau izan bada, baliteke begiratu inguruan poked duzun tresnan. 878 00:37:53,900 --> 00:37:57,000 Baina bihurtzen da hori denbora guztian, denean katea erabili behar bezala erabiltzen ditugu 879 00:37:57,000 --> 00:38:01,130 sinonimo, bide horren bidez, deklaratu dugu duten sinonimo hau izan zen 880 00:38:01,130 --> 00:38:03,990 keyword mota definizioa, typedef. 881 00:38:03,990 --> 00:38:07,500 Eta, funtsean, esaten ari gara, egin katea izar char sinonimo. 882 00:38:07,500 --> 00:38:11,190 Esan nahi du horren bidez, pila sortu ezaguna prestakuntza gurpil horiek 883 00:38:11,190 --> 00:38:12,040 katea. 884 00:38:12,040 --> 00:38:14,830 >> Orain hemen prototipoa besterik ez da getchar da. 885 00:38:14,830 --> 00:38:17,350 Ikusi dugu, agian, baina hori da hain zuzen ere, zer egiten. getchar 886 00:38:17,350 --> 00:38:19,070 argumentu, karaktere bat itzultzen du. 887 00:38:19,070 --> 00:38:21,340 getdouble argumentu, itzultzen bikoitza. 888 00:38:21,340 --> 00:38:24,440 getfloat argumentu, itzultzen mugikor bat, eta abar. 889 00:38:24,440 --> 00:38:27,270 getint hemen dago. getlonglong Hemen dago. 890 00:38:27,270 --> 00:38:28,820 Getstring eta hemen dago. 891 00:38:28,820 --> 00:38:29,420 Eta kito. 892 00:38:29,420 --> 00:38:33,080 Morea lerro hau Preprocessor bat da delako direktiba 893 00:38:33,080 --> 00:38:35,550 it hasieran hashtag. 894 00:38:35,550 --> 00:38:35,870 >> Guztiak eskubidea. 895 00:38:35,870 --> 00:38:38,380 Beraz, orain utzi cs50.c. sartu me 896 00:38:38,380 --> 00:38:40,400 Eta ez dugu hitz luzeegia honetan. 897 00:38:40,400 --> 00:38:43,280 Baina emateko zer ohi bat izan da hori guztia gertatzen ari da 898 00:38:43,280 --> 00:38:46,434 denbora, utzi zidan - 899 00:38:46,434 --> 00:38:48,250 dezagun getchar. 900 00:38:48,250 --> 00:38:51,050 Beraz getchar gehienbat iruzkinak. 901 00:38:51,050 --> 00:38:52,060 Baina itxura hau atsegin du. 902 00:38:52,060 --> 00:38:54,800 Beraz, gaur egun, hau da, getchar dugun izan 903 00:38:54,800 --> 00:38:56,055 emandako hartzen lehendik. 904 00:38:56,055 --> 00:38:59,370 Eta, hala ere, ez dugu hau erabili ko sarritan, inoiz bada, gutxienez da 905 00:38:59,370 --> 00:39:00,470 nahiko erraza da. 906 00:39:00,470 --> 00:39:02,580 Bat da, beraz, merezi du hemen begirada. 907 00:39:02,580 --> 00:39:06,540 >> Beraz getchar infinitua begizta bat du, nahita, beraz, itxuraz. 908 00:39:06,540 --> 00:39:10,050 Deiak gero - eta, hau da, mota kodea berrerabilpena polita dugu idatzi. 909 00:39:10,050 --> 00:39:11,220 Getstring deitzen da. 910 00:39:11,220 --> 00:39:12,460 Zer ez duelako esan nahi karaktere bat lortzeko? 911 00:39:12,460 --> 00:39:14,730 Beno, bai, agian saiatu bat lortzeko oro har, testu-line erabiltzaileak eta 912 00:39:14,730 --> 00:39:16,940 ondoren, bat besterik begiratu karaktere horien. 913 00:39:16,940 --> 00:39:19,170 Linea 60, hemen apur bat behatu txeke bat pixka. 914 00:39:19,170 --> 00:39:21,610 Getstring itzuli null bada, Ez dezagun jarraitu. 915 00:39:21,610 --> 00:39:22,820 Zerbait gaizki joan da. 916 00:39:22,820 --> 00:39:28,120 >> Azken hau samarra da gogaikarriak baina C. karaktere max seguruenik ohiko 917 00:39:28,120 --> 00:39:29,960 adierazten du zer bere izena oinarritutako? 918 00:39:29,960 --> 00:39:31,670 Konstante bat da. 919 00:39:31,670 --> 00:39:36,040 Da duen zenbakizko balioa bezalakoa da handiena karaktere irudikatzeko dezakezu 920 00:39:36,040 --> 00:39:40,370 mokadu bat, hau da, ziurrenik kopurua 255, horietatik handiena zenbakia da 921 00:39:40,370 --> 00:39:42,720 irudikatzeko zortzi bit, zero hasita. 922 00:39:42,720 --> 00:39:47,460 Beraz, hori erabili dut, funtzio hau, noiz kode hau idazten, soilik 923 00:39:47,460 --> 00:39:51,753 zerbait getchar bada, baina oker bere bizitzako helburua da itzultzeko 924 00:39:51,753 --> 00:39:54,830 char, nolabait gai izan behar duzu, Erabiltzaile duen seinalea 925 00:39:54,830 --> 00:39:55,840 Zerbait gaizki joan da. 926 00:39:55,840 --> 00:39:56,970 Ezin dugu itzultzeko null. 927 00:39:56,970 --> 00:39:58,480 Bihurtzen da nulua duten erakuslea da. 928 00:39:58,480 --> 00:40:01,030 Eta berriro ere, getchar du karaktere bat itzultzeko. 929 00:40:01,030 --> 00:40:04,760 >> Beraz, batzarra, zerbait galtzen doa gaizki, ez da programatzailea, edo, zuk 930 00:40:04,760 --> 00:40:08,160 Kasu honetan, ni liburutegi batera, nuen bat besterik ez arbitrarioki erabakitzen bada, 931 00:40:08,160 --> 00:40:12,230 zerbait oker, noa itzultzeko kopurua 255 da, hau da, benetan 932 00:40:12,230 --> 00:40:17,240 Beraz, ezin dugu, erabiltzaileak ezin idatzi ordezkatzen pertsonaia 933 00:40:17,240 --> 00:40:21,410 kopurua 255 izan dugulako bat lapurtu du bat deiturikoak Sentinel balioa gisa 934 00:40:21,410 --> 00:40:23,410 irudikatzeko arazo bat. 935 00:40:23,410 --> 00:40:27,010 Orain bihurtzen da pertsonaia hori 255 ez da zerbait idatzi ahal izango duzu 936 00:40:27,010 --> 00:40:28,380 zure teklatua, beraz, big deal ez da. 937 00:40:28,380 --> 00:40:30,910 Erabiltzaileak ez du nabarituko dela Lapurtu dut pertsonaia hau. 938 00:40:30,910 --> 00:40:34,620 Baina inoiz gizon bat orrialdeetan bada ikusteko informatika-sistema baten erreferentzia batzuk 939 00:40:34,620 --> 00:40:38,560 guztiak konstante bezala txanoak dela dio, error etengabeko agian hau kasuetan 940 00:40:38,560 --> 00:40:42,720 dira itzuliko, giza batzuk egin dena urte zen arbitrarioki erabaki 941 00:40:42,720 --> 00:40:45,680 itzultzeko berezi honen balioa eta deitu kasuan konstante bat 942 00:40:45,680 --> 00:40:46,840 zerbait oker. 943 00:40:46,840 --> 00:40:48,580 >> Orain magia behera gertatzen da hemen. 944 00:40:48,580 --> 00:40:52,600 Lehenik eta behin, lerroa 67 geratuko naiz bi pertsonaia, C1 eta C2. 945 00:40:52,600 --> 00:40:57,080 Eta, ondoren, 68 lerro, ez da benetan , kode-lerro hori gogorarazten du 946 00:40:57,080 --> 00:41:01,140 gure lagun printf, eman duen Cs berea izan ez komatxo artean. 947 00:41:01,140 --> 00:41:06,490 Baina konturatzen zer ari da gertatzen hemen. sscanf katea eskaneatu esan nahi du - 948 00:41:06,490 --> 00:41:11,690 esan nahi eskaneatu formatuko bat katea, ERGO sscanf. 949 00:41:11,690 --> 00:41:12,590 Zer esan nahi du? 950 00:41:12,590 --> 00:41:16,310 Kate bat sscanf pasatzen duzun esan nahi du. 951 00:41:16,310 --> 00:41:18,420 Lerroa da eta edozein dela ere Erabiltzaile mota sartu 952 00:41:18,420 --> 00:41:23,520 Formatu katea bezala sscanf pasatzen duzu hori kontatzen scanf zer dira 953 00:41:23,520 --> 00:41:25,870 mesederako erabiltzaileak idatzitako sartu 954 00:41:25,870 --> 00:41:29,730 Igaroko da-, orduan, bi helbideak memoria zatiak, kasu honetan, 955 00:41:29,730 --> 00:41:31,150 daukat bi leku delako. 956 00:41:31,150 --> 00:41:34,610 Beraz emateko helbidea noa C1 eta C2 du helbide. 957 00:41:34,610 --> 00:41:37,700 >> Eta gogoratzen eman duzula funtzio bat aldagai batzuen helbidea, zer 958 00:41:37,700 --> 00:41:38,950 inplikazioa? 959 00:41:38,950 --> 00:41:41,400 960 00:41:41,400 --> 00:41:45,050 Zer egin daiteke funtzio baten ondorioz egin emanez baten helbide 961 00:41:45,050 --> 00:41:48,170 aldakorra, baita aurka aldagai bera? 962 00:41:48,170 --> 00:41:49,450 Aldatu ahal izango da, ezta? 963 00:41:49,450 --> 00:41:53,250 Izan duzu norbait fisiko baten mapa bat bada helbidea, joan ez daitezen eta zer 964 00:41:53,250 --> 00:41:54,750 edozein dela ere nahi helbidea dute. 965 00:41:54,750 --> 00:41:55,800 Ideia bera hemen. 966 00:41:55,800 --> 00:41:59,950 To sscanf, bi helbide gara pasatzen bada memoria zatiak, nahiz eta txiki-txiki horiek 967 00:41:59,950 --> 00:42:03,585 gutxi memoria, C1 eta C2-ko zatiak, baina esan dugu horietako helbidea, 968 00:42:03,585 --> 00:42:05,170 sscanf aldatu dezakezu. 969 00:42:05,170 --> 00:42:08,530 >> Sscanf bizitzako helburua, beraz, irakurtzen badugu man orria, da zer irakurri 970 00:42:08,530 --> 00:42:13,420 Erabiltzaile idatzitako batean, erabiltzaile izatea espero pertsonaia bat, idatzitako eta agian 971 00:42:13,420 --> 00:42:16,470 beste pertsonaia bat, eta edozein dela ere, erabiltzaileak idatzitako, lehen karaktere doa 972 00:42:16,470 --> 00:42:19,310 Hemen, bigarren pertsonaia doa hemen. 973 00:42:19,310 --> 00:42:22,470 Orain, bat alde batera bezala, horrek, eta duzun bakarrik ezagutzen hau dokumentazioa batetik, 974 00:42:22,470 --> 00:42:25,570 Izan ere, hori jarri dut leku huts batean dago esan nahi du, besterik ez ditut zaintzen bada 975 00:42:25,570 --> 00:42:28,440 erabiltzailea Space barra hits gutxira aldiz aurretik berak hartzen du bat 976 00:42:28,440 --> 00:42:30,400 pertsonaia, ez ikusi egin nahi dut zuri edozein espazioa. 977 00:42:30,400 --> 00:42:32,510 Da, beraz, eta ezagutzen ditut dokumentazioa. 978 00:42:32,510 --> 00:42:36,570 >> Izan ere, ez da bigarren% c da hutsune eta ondoren benetan 979 00:42:36,570 --> 00:42:37,410 nahita. 980 00:42:37,410 --> 00:42:41,190 Antzemateko gai izan nahi dut egiten badu screwed sortu edo ez laguntzea. 981 00:42:41,190 --> 00:42:45,630 Beraz, erabiltzaileak bakarrik idatzitako dut pertsonaia bat da, beraz, espero dut 982 00:42:45,630 --> 00:42:50,640 duten sscanf bakarrik dago itzultzeko joan 1 balioa, berriz, delako irakurri badut 983 00:42:50,640 --> 00:42:55,400 dokumentazioa, sscanf en helburua bizitza izateko kopuruaren itzultzeko 984 00:42:55,400 --> 00:42:59,170 aldagai ziren bete erabiltzailearen sarrera batera. 985 00:42:59,170 --> 00:43:02,270 >> Gainditu bi aldagai dut helbideak, C1 eta C2. 986 00:43:02,270 --> 00:43:06,420 , Espero dut, nahiz eta, bat besterik ez du horiek erabat hil galtzen delako sscanf 987 00:43:06,420 --> 00:43:11,130 funtzioak 2 itzultzen du, zer da zentzuzkoa inplikazioa logikoki? 988 00:43:11,130 --> 00:43:14,600 Erabiltzaileak ez du besterik ematen dit bat pertsonaia bezala kontatu nion edo bere. 989 00:43:14,600 --> 00:43:17,860 Idatzitako seguruenik at Gutxienez bi pertsonaiak. 990 00:43:17,860 --> 00:43:22,430 Beraz, bada, zuen ordez dut, ez dute bigarren % C, izan besterik ez dut, eta horrek 991 00:43:22,430 --> 00:43:25,370 sinceramente intuitiboagoa izango litzateke hurbilketa, lehen begiratu batean, uste dut, 992 00:43:25,370 --> 00:43:30,220 ez duzu antzemateko gai izango erabiltzailea izan baduzu, gehiago ematen 993 00:43:30,220 --> 00:43:31,780 sarrera baino benetan duzu nahi. 994 00:43:31,780 --> 00:43:34,100 Beraz, hau inplizitua forma bat da error egiaztatzea. 995 00:43:34,100 --> 00:43:35,640 >> Baina konturatu hemen zer egiten dut. 996 00:43:35,640 --> 00:43:39,970 Behin ziurtatu erabiltzaileari eman zidan bat naiz pertsonaia, lerro askatzeko nuen, egiten ari 997 00:43:39,970 --> 00:43:44,450 getstring da kontrakoa, eta horrek malloc erabiltzen ditu, eta, gero, itzuliko dut 998 00:43:44,450 --> 00:43:51,030 C1, pertsonaia hori espero dut Erabiltzaileak emandako eta bakarrik ematen da. 999 00:43:51,030 --> 00:43:54,680 Beraz, azkar bat glimpsed bakarra, baina getchar buruzko edozein galdera? 1000 00:43:54,680 --> 00:43:57,450 1001 00:43:57,450 --> 00:43:59,590 Itzuli beharko dugu beste batzuk. 1002 00:43:59,590 --> 00:44:03,770 >> Beno, goazen aurrera, eta niri hori egin - demagun orain, besterik gabe, gure motibatzea 1003 00:44:03,770 --> 00:44:08,910 aste bat gehi denbora eztabaida, hau structs.h izeneko fitxategi bat da. 1004 00:44:08,910 --> 00:44:11,440 Eta berriro ere, hau da, zapore zerbait datza aurretik. 1005 00:44:11,440 --> 00:44:13,090 Baina iragarki asko hau iruzkin bat da. 1006 00:44:13,090 --> 00:44:17,440 Hargatik me nabarmendu bakarrik oraingoz parte interesgarria. 1007 00:44:17,440 --> 00:44:18,020 typedef - 1008 00:44:18,020 --> 00:44:19,700 han berean, gako-hitz hori berriro. 1009 00:44:19,700 --> 00:44:23,100 typedef kate adierazteko erabiltzen dugu datu-mota berezi gisa. 1010 00:44:23,100 --> 00:44:27,490 Typedef erabili dezakezu marka berria sortzeko datu-mota hori existitzen ez denean 1011 00:44:27,490 --> 00:44:28,570 C asmatu zen. 1012 00:44:28,570 --> 00:44:32,520 Esate baterako, int C. char dator dator C. bikoitza C. dator, baina 1013 00:44:32,520 --> 00:44:34,000 Ikasle bat ez kontzeptua ez da. 1014 00:44:34,000 --> 00:44:37,230 Eta oraindik nahiko erabilgarria izango litzateke gai-programa bat gordetzen duten idazteko 1015 00:44:37,230 --> 00:44:40,440 aldagai batean, ikaslearen NAN zenbakia, bere izena, eta beren etxea. 1016 00:44:40,440 --> 00:44:42,890 Bestela esanda, hiru pieza datuak, nahi int bat eta 1017 00:44:42,890 --> 00:44:44,420 katea eta string bat. 1018 00:44:44,420 --> 00:44:48,220 >> Typedef, zer da nahiko indartsua hau eta keyword sturct buruz 1019 00:44:48,220 --> 00:44:53,660 egitura, duzu, 2013an programatzailea, benetan zehaztu egin du 1020 00:44:53,660 --> 00:44:57,530 datu-mota hori ez da existitzen urte duela, baina hori egokitzeko zure helburuetarako. 1021 00:44:57,530 --> 00:45:01,910 Eta, beraz, hemen, lineak 13 19 bidez; berri bat datu-mota deklaratzen ari gara, adibidez, 1022 00:45:01,910 --> 00:45:04,320 int bat, baina ikaslea deituz. 1023 00:45:04,320 --> 00:45:09,310 Eta aldagai horren barruan dago, joan int bat, kate bat, - hiru gauza izan 1024 00:45:09,310 --> 00:45:09,930 eta kate bat. 1025 00:45:09,930 --> 00:45:13,040 Beraz, zer da benetan pentsa dezakezu Hemen gertatu zen, nahiz eta hori bat 1026 00:45:13,040 --> 00:45:17,160 sinplifikazio bat pixka gaur, Ikasle bat da, funtsean, joan 1027 00:45:17,160 --> 00:45:19,450 horrela begiratu. 1028 00:45:19,450 --> 00:45:22,580 Bere pusketa bat izango ID bat duen memoria, izen bat 1029 00:45:22,580 --> 00:45:25,580 eremuan, eta etxeko eremu bat. 1030 00:45:25,580 --> 00:45:30,670 Eta gai izango horietako zatiak erabili dugu memoria eta bertan sartzeko honela. 1031 00:45:30,670 --> 00:45:38,870 >> Struct0.c sartu nintzen gero, hemen da nahiko luzea da, baina bat jarraituz 1032 00:45:38,870 --> 00:45:42,630 eredua, kodea duten berriak trikimailu hau erabiltzen du. 1033 00:45:42,630 --> 00:45:45,790 Beraz, lehenik eta behin, utzi zure atentzioa me Gora gora zati interesgarriena. 1034 00:45:45,790 --> 00:45:49,670 Zorrotz definitzen ikasle 3, deklaratzen bat etengabeko izeneko ikasle eta lagapen 1035 00:45:49,670 --> 00:45:53,450 it arbitrarioki 3 zenbakia, besterik beraz, hiru ikasle izan nuen 1036 00:45:53,450 --> 00:45:54,830 Gaur egun, programa honetan. 1037 00:45:54,830 --> 00:45:55,960 Hemen dator nagusian. 1038 00:45:55,960 --> 00:45:58,860 Oharra eta, nola ez dut deklaratzeko ikasle sorta bat? 1039 00:45:58,860 --> 00:46:00,480 Beno, erabili besterik ez dut bera sintaxia. 1040 00:46:00,480 --> 00:46:02,110 Hitza ikaslea da, jakina, berria. 1041 00:46:02,110 --> 00:46:04,790 Baina ikaslea, klasea, tarte ikasleak. 1042 00:46:04,790 --> 00:46:06,720 >> Beraz, tamalez, ez da asko terminoak hemen berriz. 1043 00:46:06,720 --> 00:46:07,660 Hau besterik ez da zenbaki bat. 1044 00:46:07,660 --> 00:46:09,040 Beraz hau hiru esaten duena bezalakoa da. 1045 00:46:09,040 --> 00:46:11,430 Klase besterik ez da zer nahi dut aldagai deitzeko. 1046 00:46:11,430 --> 00:46:12,840 Deitu ikasleek nuen. 1047 00:46:12,840 --> 00:46:15,880 Baina klasea, hau ez da klase bat objektu bideratutako Java moduko bidea. 1048 00:46:15,880 --> 00:46:17,220 Besterik ez da, ikasleek klasean. 1049 00:46:17,220 --> 00:46:20,590 Eta elementu bakoitzaren datu mota array hori da ikaslea. 1050 00:46:20,590 --> 00:46:23,040 Beraz, hau da, pixka bat ezberdinak eta zerbait esaten hasita 1051 00:46:23,040 --> 00:46:25,250 horrela, besterik ez da - 1052 00:46:25,250 --> 00:46:29,500 Ematen dit hiru ikasle naiz esaten eta deitu array-klase hori. 1053 00:46:29,500 --> 00:46:29,800 >> Guztiak eskubidea. 1054 00:46:29,800 --> 00:46:30,680 Orain hemen lau begizta bat da. 1055 00:46:30,680 --> 00:46:33,480 Guy honen ezagunak - batetik bestera joateko zero-tik gora, hiru. 1056 00:46:33,480 --> 00:46:35,160 Eta hemen sintaxia pieza berria da. 1057 00:46:35,160 --> 00:46:37,710 Programa horrek niri galdetuko joan, giza, emateko, ikasle batek 1058 00:46:37,710 --> 00:46:39,200 NAN, zein int da. 1059 00:46:39,200 --> 00:46:44,650 Eta hemen sintaxia duen ahal duzun da gordetzeko zerbait ID eremuan at 1060 00:46:44,650 --> 00:46:48,630 kokapena klasea parentesi I. So sintaxia hau ez da berria. 1061 00:46:48,630 --> 00:46:51,450 Honek esan nahi du, besterik gabe, ematen dit zortzigarren klase ikaslea. 1062 00:46:51,450 --> 00:46:52,940 Baina sinbolo berria da. 1063 00:46:52,940 --> 00:46:56,320 Orain arte, ezin dugu erabili ez dot, gutxienez, hau bezalako kodea. 1064 00:46:56,320 --> 00:47:01,490 Honek esan nahi du ezagutzen egitura gisa joan ikasle bat eta zerbait jartzea. 1065 00:47:01,490 --> 00:47:05,670 Era berean, hau da, hurrengo lerroan, 31, joan Animatu eta jarri edozein izanik ere, erabiltzaileak motak 1066 00:47:05,670 --> 00:47:10,530 izen bat hemen eta zer egiten dute bat house, gauza bera, aurrera eta 1067 00:47:10,530 --> 00:47:13,230 ipini. etxean. 1068 00:47:13,230 --> 00:47:15,955 >> Beraz, zer programa honek Azken finean, zer egin? 1069 00:47:15,955 --> 00:47:17,220 Pixka bat teaser han ikusi ahal izango duzu. 1070 00:47:17,220 --> 00:47:24,780 Dezagun aurrera ni eta structs egin dezaket 0 dot barra egiturari 0, ikaslearen identifikazio 1, 1071 00:47:24,780 --> 00:47:28,250 esan David Mather, ikaslearen 2. 1072 00:47:28,250 --> 00:47:32,070 Rob Kirkland, ikaslearen 3. 1073 00:47:32,070 --> 00:47:35,010 Lauren Leverit - 1074 00:47:35,010 --> 00:47:38,380 eta gauza bakarra egin zuen programa hau, hau da, besterik gabe, erabat arbitrarioa da, 1075 00:47:38,380 --> 00:47:40,980 Zerbait egin behar datuak honekin nahi nuen, orain dela irakatsi digu dut nola 1076 00:47:40,980 --> 00:47:43,450 erabili structs da, izan besterik ez dut hau aparteko begizta hemen. 1077 00:47:43,450 --> 00:47:45,260 Batetik bestera joateko ikasleek array gainean nuen. 1078 00:47:45,260 --> 00:47:49,170 Gure, agian, gaur egun ezagutzen lagun nituela, katea alderatu, stircomp to 1079 00:47:49,170 --> 00:47:53,780 check 8an ikaslearen etxea to Mather berdinak? 1080 00:47:53,780 --> 00:47:56,760 Eta hala bada, besterik gabe, zerbait inprimatu inori gustatzen, bai, da. 1081 00:47:56,760 --> 00:47:59,430 Baina, berriro, nire aukera emanez erabili eta berrerabiltzeko eta 1082 00:47:59,430 --> 00:48:02,270 berrerabiltzea berri honen dot idazkera. 1083 00:48:02,270 --> 00:48:03,250 >> Beraz, nork zaintzen du, ezta? 1084 00:48:03,250 --> 00:48:06,270 Datozen ikasle-programa bat da, zertxobait arbitrarioa da, baina bihurtzen da 1085 00:48:06,270 --> 00:48:09,800 erabilgarria duten gauzak egiten dugun dezake honetan, esate baterako, honela. 1086 00:48:09,800 --> 00:48:14,600 Hau askoz zailagoa da, eta egitura C. da zer lortu dozena bat edo gehiago eremuak, 1087 00:48:14,600 --> 00:48:15,880 zertxobait cryptically izendatu. 1088 00:48:15,880 --> 00:48:20,110 Baina duzun inoiz bada grafiko bat entzun fitxategi formatu izeneko bitmap, BMP da 1089 00:48:20,110 --> 00:48:22,830 bihurtzen da bit fitxategi formatua da, hau nahiko askoz duten itxura. 1090 00:48:22,830 --> 00:48:24,200 Apur bat ergela Smiley aurpegia da. 1091 00:48:24,200 --> 00:48:27,840 Irudi txiki bat da ditudan en handitutako nahiko handia dela, beraz, bakoitzak ikusi izan dut 1092 00:48:27,840 --> 00:48:30,410 puntuak banaka edo pixel. 1093 00:48:30,410 --> 00:48:33,800 Orain, bat dugu irudikatzeko out dezakezu bihurtzen da , esan du, kopurua 0 puntu beltzak. 1094 00:48:33,800 --> 00:48:35,520 Eta kopuruak 1 eta puntu zuri bat. 1095 00:48:35,520 --> 00:48:39,140 >> Beraz, beste era batera esanda, nahi baduzu bat marrazteko Smiley face eta irudi hori gorde 1096 00:48:39,140 --> 00:48:42,680 ordenagailua, zero gordetzeko eta nahikoa direnak itxura hau, non, 1097 00:48:42,680 --> 00:48:45,250 berriro ere, zeintzuk dira zuri zeroen eta beltzak dira. 1098 00:48:45,250 --> 00:48:48,290 Eta horrekin batera, modu eraginkorrean baduzu bat ere bai, eta zeroen de gird, bat duzu 1099 00:48:48,290 --> 00:48:51,030 pixel-sareta, eta zelatan baduzu itzazu, polita izango duzu 1100 00:48:51,030 --> 00:48:52,560 apur Smiley face. 1101 00:48:52,560 --> 00:48:58,150 Orain, bit fitxategi formatua, BMP da eraginkorrean duten kanpaia azpian, 1102 00:48:58,150 --> 00:49:00,970 baina pixel gehiago Sot egiten duzun hori benetan adierazten koloreak. 1103 00:49:00,970 --> 00:49:05,170 >> Baina sofistikatuagoa behar duzu BMP fitxategia eta JPEG eta GIF bezalako formatu 1104 00:49:05,170 --> 00:49:09,360 zein izan ezagutzen dituzu, agian, horiek diskoko fitxategiak, normalean, ez bakarrik 1105 00:49:09,360 --> 00:49:13,760 izan zero eta pixel egiteko ere bai, baina metadatu batzuk dituzte, bai - 1106 00:49:13,760 --> 00:49:16,960 zentzua ez dela benetan en meta datuak, baina erabilgarria da behar. 1107 00:49:16,960 --> 00:49:21,370 Beraz, eremu horiek dira hemen, eta ulertuta hau ikusiko dugu P-multzoan xehetasun gehiago 1108 00:49:21,370 --> 00:49:25,810 5, hori zero eta bai horren aurretik adierazten irudi batean pixel, 1109 00:49:25,810 --> 00:49:29,110 ez metadatuak mordo bat bezala irudiaren tamaina eta 1110 00:49:29,110 --> 00:49:30,250 irudiaren zabalera. 1111 00:49:30,250 --> 00:49:32,910 Eta konturatu naiz off plucking batzuk arbitrarioak gauzak hemen - 1112 00:49:32,910 --> 00:49:34,260 zabalera eta altuera. 1113 00:49:34,260 --> 00:49:36,160 Bit kopuruan eta beste gauza batzuk. 1114 00:49:36,160 --> 00:49:37,840 Beraz, fitxategi batean metadatu batzuk. 1115 00:49:37,840 --> 00:49:41,470 >> Baina, nola banatuta dauden fitxategiak ulertzeko arabera Modu honetan out, benetan dezakezu 1116 00:49:41,470 --> 00:49:45,890 manipulatu ondoren, irudiak, irudiak berreskuratu diskotik, irudien tamaina aldatu. 1117 00:49:45,890 --> 00:49:47,560 Baina ezin duzu nahitaez horiek hobetzeko. 1118 00:49:47,560 --> 00:49:48,480 Argazki bat behar nuen. 1119 00:49:48,480 --> 00:49:52,840 Beraz, atzera joan nintzen RJ hemen, nork ikusi pantailan, nahiko denbora pixka bat duela. 1120 00:49:52,840 --> 00:49:57,160 Eta ireki nuen bada Keynote hemen, hau da, zer gertatzen saiatu duzu hurbiltzeko bada eta 1121 00:49:57,160 --> 00:49:59,380 RJ hobetzeko. 1122 00:49:59,380 --> 00:50:01,480 Ez du inolako hobea, benetan. 1123 00:50:01,480 --> 00:50:06,240 Orain Hitzaldi bat lausotzen mota da pixka bat, besterik ez gainetik distira 1124 00:50:06,240 --> 00:50:11,040 Izan ere, RJ ez dela bereziki hobetua sartu denean txikiagotzen 1125 00:50:11,040 --> 00:50:13,310 Eta horrela egin bada, ikusi laukitxo? 1126 00:50:13,310 --> 00:50:15,490 Bai, zalantzarik gabe, ikusiko duzu on proiektore bat laukiak. 1127 00:50:15,490 --> 00:50:17,690 >> Horixe duzunean hobetzeko lortu duzu. 1128 00:50:17,690 --> 00:50:22,570 Baina ulertzeko nola gure RJ edo Smiley face ezartzen digu utziko 1129 00:50:22,570 --> 00:50:24,950 Egia esan, idatzi kodea duten manipulatu gauza horiek. 1130 00:50:24,950 --> 00:50:29,970 Eta ohar honetan amaituko nuke pentsatu nuen, eta 55 bat segundotan hobetu dela, 1131 00:50:29,970 --> 00:50:31,230 , Ausartzen naiz esaten, baizik eta nahasgarria da. 1132 00:50:31,230 --> 00:50:32,990 >> [Bideo-erreprodukzioa] 1133 00:50:32,990 --> 00:50:34,790 >> -Egin zuen, etzanda. 1134 00:50:34,790 --> 00:50:38,310 Zeri buruz, ez dakit. 1135 00:50:38,310 --> 00:50:41,200 >> -Beraz, zer dakigu? 1136 00:50:41,200 --> 00:50:45,280 >> -Hori 9:15 Ray Santoya at Kutxazain zen. 1137 00:50:45,280 --> 00:50:47,830 >> -Beraz, galdera da zer egiten ari zen, 9:16 etan zuen? 1138 00:50:47,830 --> 00:50:50,750 >> -Filmaketa bederatzi milimetro du zerbait. 1139 00:50:50,750 --> 00:50:52,615 Agian frankotiratzaile ikusi zuen. 1140 00:50:52,615 --> 00:50:54,760 >> -Edo zen berarekin lanean. 1141 00:50:54,760 --> 00:50:56,120 >> -Itxaron. 1142 00:50:56,120 --> 00:50:57,450 Joan atzera bat. 1143 00:50:57,450 --> 00:50:58,700 >> -Zer ikusi? 1144 00:50:58,700 --> 00:51:05,530 1145 00:51:05,530 --> 00:51:09,490 >> -Ekarri bere aurpegia gora, pantaila osoan. 1146 00:51:09,490 --> 00:51:09,790 >> -Bere betaurrekoak. 1147 00:51:09,790 --> 00:51:11,040 >> -Bada, gogoeta bat da. 1148 00:51:11,040 --> 00:51:21,790 1149 00:51:21,790 --> 00:51:23,520 >> -Hori Neuvitas beisbol taldea da. 1150 00:51:23,520 --> 00:51:24,530 Hori da beren logo. 1151 00:51:24,530 --> 00:51:27,040 >> -Eta nahi duenak egin zuen hitz egiten jaka jantzita dagoela. 1152 00:51:27,040 --> 00:51:27,530 >> [END bideo-erreprodukzioa] 1153 00:51:27,530 --> 00:51:29,180 >> David J. MALAN: Hau izango da Arazoa Ezarri 5 izango da. 1154 00:51:29,180 --> 00:51:30,720 Baduzu, ikusiko dugu datorren astean. 1155 00:51:30,720 --> 00:51:32,330 >> GIZONEZKOEN Hizlaria: hurrengo CS50 At. 1156 00:51:32,330 --> 00:51:39,240 >> [Kilkerrak CHIRPING] 1157 00:51:39,240 --> 00:51:41,270 >> [Musika jotzen]