1 00:00:00,000 --> 00:00:11,242 >> [Musika jotzen] 2 00:00:11,242 --> 00:00:16,630 >> David J. MALAN: Guztiak eskubidea hori CS50 eta aste honetan bost hasiera da. 3 00:00:16,630 --> 00:00:21,480 Gaur egun, beraz, zure eserlekua kuxin azpian, ez duzu ezer aurkitu. 4 00:00:21,480 --> 00:00:24,790 Baina, batez ere, hauek aurkitu behar duzu, gutxi gure estimua tokenaren 5 00:00:24,790 --> 00:00:26,970 lana jarri duzun guztia Hamabost zelairatu da. 6 00:00:26,970 --> 00:00:30,290 Kendu, besterik gabe, apur zirkulua an beheko aldean jokatzen hasteko 7 00:00:30,290 --> 00:00:31,680 klaseko gainerako. 8 00:00:31,680 --> 00:00:38,930 >> Beraz, gogora ekarri du, edo arazoren bat ezarri ezagutu lau, joan den asteburu honetan, 9 00:00:38,930 --> 00:00:40,340 Beste partida bat dakar idatziz. 10 00:00:40,340 --> 00:00:43,740 Baina denbora honetan datza bat erabiliz benetako saguaren, ez da 11 00:00:43,740 --> 00:00:46,310 testu-interfaze atsegin Hamabost-jokoa izan zen. 12 00:00:46,310 --> 00:00:50,210 Eta jokoa dela datza aurretik duzun, duzun edo ez, ikusi hurrengo hau, 13 00:00:50,210 --> 00:00:52,310 honen antzeko zerbait pixka bat dirudi. 14 00:00:52,310 --> 00:00:55,170 Nire terminal sartu dut GDB hemen leiho batean. 15 00:00:55,170 --> 00:00:58,600 Eta aurrera joan eta exekutatu dut langileen irtenbidea, eta horrek dezakezu sarbidea 16 00:00:58,600 --> 00:01:01,010 eguneratzea 50 exekutatzen ondoren, ohikoa den bezala. 17 00:01:01,010 --> 00:01:04,090 >> Baina jarri txiki bat sartu dut sekretu moduan, apur bat Pazko arrautza, 18 00:01:04,090 --> 00:01:08,480 izenekoak Jainkoak modua, arabera Jainkoaren jarriz argv1 batean. 19 00:01:08,480 --> 00:01:12,920 Eta nire norabide jarraitu nahi dut, it exekutatzen nire egin 20 00:01:12,920 --> 00:01:14,220 Arazo direktorioa ezarri. 21 00:01:14,220 --> 00:01:19,190 Beraz, orain bertsio bat ikusiko duzu Breakout jokoa da. 22 00:01:19,190 --> 00:01:21,090 Izan ere, hau ez da esku-modua da. 23 00:01:21,090 --> 00:01:24,850 Beraz, benetan da - 24 00:01:24,850 --> 00:01:26,470 wowed izan arren, baliteke - 25 00:01:26,470 --> 00:01:30,850 nahiko erraza Jainkoaren modua ezartzeko en Breakout, hamabost Game ez bezala, 26 00:01:30,850 --> 00:01:33,590 horietatik batzuk jorratu izana hacker ediziorako. 27 00:01:33,590 --> 00:01:37,890 >> Breakout en Jainkoa nahikoa da moduan, besterik gabe, zer, 28 00:01:37,890 --> 00:01:41,220 pala duen intuizioa? 29 00:01:41,220 --> 00:01:45,630 Just egin berdina edozein da horizontalean baloia da. 30 00:01:45,630 --> 00:01:49,220 Eta beti bezala, hau lockstep en baloia mugitzen Joko hau izango 31 00:01:49,220 --> 00:01:53,100 inoiz ez, inoiz ez, inoiz galdu baloia eta aldi bakoitzean irabaziko dituzu. 32 00:01:53,100 --> 00:01:55,430 >> Baina aste honetan hacker edizioan ez bakarrik Jainkoaren modua baino gehiago. 33 00:01:55,430 --> 00:01:56,720 Bada beste ezaugarri multzo bat da. 34 00:01:56,720 --> 00:01:58,140 Horien artean, laserrak. 35 00:01:58,140 --> 00:02:01,070 Beraz, benetan bazara pazientziarik duzu behera filmatzen adreilu has daiteke 36 00:02:01,070 --> 00:02:02,120 eta beste batzuk. 37 00:02:02,120 --> 00:02:04,560 Eta nahi dutenentzat gustatuko litzaidake for neurtzeko estandar versus hacker 38 00:02:04,560 --> 00:02:08,750 edizioa, ikusten dut aste honetan duten hacker edizioa nahita da 39 00:02:08,750 --> 00:02:12,830 gehixeago doable, esateko, Jainkoaren baino Modu hamabost Game izan zen. 40 00:02:12,830 --> 00:02:15,300 >> Hala bada tarte bat ari zaren, eta bila batzuk osagarriak fun bila zabiltzan 41 00:02:15,300 --> 00:02:18,400 ezaugarri do interes gero murgiltzeko. 42 00:02:18,400 --> 00:02:21,280 Orain, ia-ia, let me seinalatu Gauza bat atera ere bai. 43 00:02:21,280 --> 00:02:24,780 GDB, horietatik batzuk, agian, ez dute oraindik ukitu pertsonalki, hau da, fina. 44 00:02:24,780 --> 00:02:28,530 Baina orain, benetan denbora erabiltzen eskuratzeko honetan eroso eta tresna honekin 45 00:02:28,530 --> 00:02:31,510 zure bizitza delako egingo askoz errazagoa da, benetan. 46 00:02:31,510 --> 00:02:34,900 >> Rob en GDB pare bat hitzaldia bakoitzeko Duela aste, gogoratzen 47 00:02:34,900 --> 00:02:36,810 GDB araztailea hori da. 48 00:02:36,810 --> 00:02:41,230 Tresna bat ematen dizu exekutatu da zure programa exekutatu, baina urratsez urrats, lerro ditu 49 00:02:41,230 --> 00:02:45,680 lerro, beraz, Poke inguruan dezakezu, beraz, gauzak gertatzen ari dela ikusten duzu, beraz, 50 00:02:45,680 --> 00:02:47,310 dela inprimatu ahal izango duzu aldagaien balioak. 51 00:02:47,310 --> 00:02:50,580 Labur esanda, ematen du, beraz, askoz gehiago printDef baino potentzia du. 52 00:02:50,580 --> 00:02:52,900 >> Orain Admittedly, interfazea nahiko urrutira. 53 00:02:52,900 --> 00:02:55,180 Zuri-beltza eta testu-interfazea gehienak. 54 00:02:55,180 --> 00:02:57,400 Komandoak, eta hauek oso gogorra lehenengo mailan gogoratu. 55 00:02:57,400 --> 00:03:01,230 Baina, nahiz eta erdi hartu duzu agian Ordu bat, ordu bat, upfront hori jarri 56 00:03:01,230 --> 00:03:02,940 denbora inbertsioa egitea, konfiantza me. 57 00:03:02,940 --> 00:03:06,440 Zalantzarik gabe, seihilekoa amaitu aurretik gorde egingo da magnitude bat duzu gehiago 58 00:03:06,440 --> 00:03:07,600 hori baino denbora. 59 00:03:07,600 --> 00:03:09,200 >> Beraz, goiz aste dive sartu en 60 00:03:09,200 --> 00:03:13,200 Eta Breakout dagokionez, dakizu Horretarako, hain luzea izan duzun bezala, 61 00:03:13,200 --> 00:03:18,230 banaketa-kodea edo zure kodea Zure direktorioa Pst4 aurrerapena ere. 62 00:03:18,230 --> 00:03:21,680 Gdb ezagutzen duzula exekutatu daiteke. / Breakout. 63 00:03:21,680 --> 00:03:23,490 >> Hau da ireki joan honen antzeko leiho bat. 64 00:03:23,490 --> 00:03:25,530 Demagun neure burua ematen dit gehiago terminal-leiho batean. 65 00:03:25,530 --> 00:03:27,770 Eta gero, zer aurrera noa eta ez, ez da, besterik gabe exekutatu. 66 00:03:27,770 --> 00:03:30,690 Lehenengo ezarri break puntu bat dut berreskuratzeko, horri esker, pausatu behar duzu 67 00:03:30,690 --> 00:03:32,500 jakin bat leku exekuzioa. 68 00:03:32,500 --> 00:03:35,750 >> Just gauzak sinpleak joan naiz mantentzeko lerro batean apurtu besterik idatzita 69 00:03:35,750 --> 00:03:37,000 zenbaki bat. 70 00:03:37,000 --> 00:03:40,080 71 00:03:40,080 --> 00:03:43,250 Demagun benetan me berriro ireki leiho hau da bat delako 72 00:03:43,250 --> 00:03:45,700 txiki txiki bat dago. 73 00:03:45,700 --> 00:03:53,270 Beraz, zer naiz orain, hemen egingo da ireki nuen nire terminal leihoan. 74 00:03:53,270 --> 00:03:53,910 Tira, ez gara joan. 75 00:03:53,910 --> 00:03:59,850 >> Beraz, orain atzera joan nintzen dropbox, Pst4 eta exekutatu gdb. / breakout sartu, nabarituko 76 00:03:59,850 --> 00:04:02,600 Ezarri bat apurtu dut lerro bat puntu atseden. 77 00:04:02,600 --> 00:04:04,840 Eta orain, joan naiz Animatu eta mota exekutatu. 78 00:04:04,840 --> 00:04:07,370 Eta noiz egin nuen, ezer ez nabarituko badirudi gertatuko. 79 00:04:07,370 --> 00:04:08,120 >> Badira pop up ez. 80 00:04:08,120 --> 00:04:09,790 Ez grafikoa gabe Erabiltzaile interfaze oraindik. 81 00:04:09,790 --> 00:04:13,340 Baina hori ulergarria naiz dudalako hitzez hitz, lerro bat nire programa batean. 82 00:04:13,340 --> 00:04:17,110 Eta nabarituko dudan azkar birbidaliko, zehazki, gaur egun, 62, guztiak ere 83 00:04:17,110 --> 00:04:20,600 fitxategi honen goialdean apurtu da iruzkinak eta konstanteak bezalako gauzak eta 84 00:04:20,600 --> 00:04:22,460 oraingoz gauza izanarren. 85 00:04:22,460 --> 00:04:25,840 >> Beraz, orain nago nagusiaren barruan dut, , badirudi line 62. 86 00:04:25,840 --> 00:04:27,960 Eta hori banaketa kodea, abisuaren. 87 00:04:27,960 --> 00:04:33,810 Ireki dut hau galtzen joan da, era berean, nire tanta kutxa direktorioa Pst4 alegia, 88 00:04:33,810 --> 00:04:35,450 breakout.c sartu. 89 00:04:35,450 --> 00:04:40,670 Eta joan I behera bada eta behera eta behera, eta utzi aurrera ni eta piztu 90 00:04:40,670 --> 00:04:44,990 nire lerro-zenbakiak. 91 00:04:44,990 --> 00:04:50,300 >> Zer ikusi dut, gero korrituko dut linea 62, hain zuzen lerroan duten 92 00:04:50,300 --> 00:04:50,910 pausatu dugu gainean. 93 00:04:50,910 --> 00:04:53,720 Lerro hau hemen, eta, beraz, 62 da Non izango buruz ari gara. 94 00:04:53,720 --> 00:04:57,470 Beraz, orain GDB ere, aurrerago joan nintzen gero, eta idatzi orain hurrengo, sartu da joan 95 00:04:57,470 --> 00:04:58,450 lerroa exekutatu. 96 00:04:58,450 --> 00:05:00,610 Eta voila, ditugu izenekoak g leihoa. 97 00:05:00,610 --> 00:05:02,800 Zer GWindow bat ezagutzen baduzu da, ez kezkatu. 98 00:05:02,800 --> 00:05:05,740 Zehaztutako aurkeztuko dizkizu nahi du, ongi gidatua bideo bat 99 00:05:05,740 --> 00:05:06,830 spec barneratua. 100 00:05:06,830 --> 00:05:08,610 >> Baina orain egin dezagun hau pixka bat gehiago interesgarria. 101 00:05:08,610 --> 00:05:10,960 Let leiho hau mugitu me baino gehiago alde pixka bat. 102 00:05:10,960 --> 00:05:13,480 Let leihoa dit apur bat handiagoa da, beraz, gehiago ikusten dut. 103 00:05:13,480 --> 00:05:16,140 >> Eta orain, goazen aurrera me egin eta hurrengo berriro. 104 00:05:16,140 --> 00:05:17,550 Eta ez dira nire adreiluz. 105 00:05:17,550 --> 00:05:20,490 Idatzi dut hurrengo berriro Orain, baloia ikusten dut. 106 00:05:20,490 --> 00:05:23,520 Eta idatzi dut hurrengo berriz ere bada orain, pala ikusten dut. 107 00:05:23,520 --> 00:05:26,690 >> Eta zorionez gedit hau ez da benetan me erakutsiz lankideen 108 00:05:26,690 --> 00:05:27,660 guztia nahi dut. 109 00:05:27,660 --> 00:05:30,820 Baina orain ez dut hurrengo berriz ere bada, hurrengo berriro, besterik ez naiz 110 00:05:30,820 --> 00:05:32,260 aldagai batzuk geratuko. 111 00:05:32,260 --> 00:05:34,750 Eta edozein bat inprimatu ahal izango dut mutil hauek daudelarik. 112 00:05:34,750 --> 00:05:37,170 Inprimatu adreilu, grabatuak bizitza. 113 00:05:37,170 --> 00:05:39,910 >> Eta, orain, jarraituko dut egin bada ondoan, konturatu egingo dudala izan 114 00:05:39,910 --> 00:05:40,870 begizta horren barruan. 115 00:05:40,870 --> 00:05:43,380 Baina kodea da exekutatu joan zehazki dut espero. 116 00:05:43,380 --> 00:05:45,810 Beraz, funtzio honetan hit I, itxaron Klik eta, egin da joan 117 00:05:45,810 --> 00:05:46,830 hori literalki da. 118 00:05:46,830 --> 00:05:48,870 Beraz, galdu egin kontrol zirudien dut programaren bidez. 119 00:05:48,870 --> 00:05:50,480 >> GDB ez da me emanez gonbita bat. 120 00:05:50,480 --> 00:05:51,500 Baina ez kezkatu. 121 00:05:51,500 --> 00:05:53,720 Nire jokoa joan, egin klik nonbait. 122 00:05:53,720 --> 00:05:56,270 >> Eta voila, orain hasten line 86 da. 123 00:05:56,270 --> 00:05:59,460 Beraz, berriro ere, eskerga da, azken finean, arazketa arazoak. 124 00:05:59,460 --> 00:06:03,050 Dezakezu literalki delako zehar Zure kodea, inprimatu eta gauza asko, 125 00:06:03,050 --> 00:06:03,640 askoz gehiago. 126 00:06:03,640 --> 00:06:07,210 Baina oraingoz, tresna horiek bakarrik, lortu behar duzu nahiko urrun. 127 00:06:07,210 --> 00:06:10,050 >> Beraz, ari gara, noski, itxura bat hartu grafikoak, orain, bat-batean egiten. 128 00:06:10,050 --> 00:06:12,350 Eta orain, gure mundu txiki bat lortzen interesgarriena. 129 00:06:12,350 --> 00:06:15,680 Eta, badakizu, agian, batzuk bideoak sarean dugula horiek 130 00:06:15,680 --> 00:06:18,280 praka duzula ikusten ari dira arazo multzo baten zati gisa. 131 00:06:18,280 --> 00:06:20,460 >> Dituzte, eta nik filmatu dira, nahita, zuri baten atzean aurka. 132 00:06:20,460 --> 00:06:23,380 Eta horietako batzuk irakaskuntza Fellows testu batzuk marrazten buruzko 133 00:06:23,380 --> 00:06:25,490 pantaila hori gainjarriko Horietako aldean. 134 00:06:25,490 --> 00:06:27,760 Baina noski, hau ez da guztia Mundu errealean interesgarria. 135 00:06:27,760 --> 00:06:30,520 Hau besterik batekin aretoan hitzaldi bat da big pantaila zuri eta atzean. 136 00:06:30,520 --> 00:06:33,330 Eta gure ekoizpen harrigarria taldea sort egiten duen guztia itxura ederra 137 00:06:33,330 --> 00:06:36,620 out by Izan mozketaren ondoren edo ezer overlaying 138 00:06:36,620 --> 00:06:37,840 edo egiten dugu nahi ez. 139 00:06:37,840 --> 00:06:41,560 >> Orain aste honetan motibatzeko eta Benetan, non joan ahal izango duzu, azken finean, 140 00:06:41,560 --> 00:06:42,560 informatika batera. 141 00:06:42,560 --> 00:06:44,260 Ez bakarrik arazoa ondoren lau. 142 00:06:44,260 --> 00:06:48,240 Baina, jakina, beste edo oso baten ondoren curriculum oso harrigarria da zer ahal duzun 143 00:06:48,240 --> 00:06:51,090 egin egun hauetan terminoetan bereziki grafikoak. 144 00:06:51,090 --> 00:06:53,440 >> Batzuk ikusi dezake hau online inguruan nagusiak. 145 00:06:53,440 --> 00:06:56,240 Baina erakutsiko nuela pentsatu nuen, eta besterik gabe, minutu pare, zer ohi bat 146 00:06:56,240 --> 00:07:01,890 ordenagailu teknologia eta zer CGI, infografia egun hauetan egin ahal 147 00:07:01,890 --> 00:07:04,510 abesti ezagun batekin eta, agian, pelikula. 148 00:07:04,510 --> 00:07:05,760 >> [MUSIKA - LANA DEL Ray, "Gazte eta eder] 149 00:07:05,760 --> 00:10:50,270 150 00:10:50,270 --> 00:10:52,470 >> HIZLARIA: 1 besterik pixka bat da harrigarria da, agian, besterik gabe, nola 151 00:10:52,470 --> 00:10:52,857 nonahiko - 152 00:10:52,857 --> 00:10:57,040 >> [Txaloak] 153 00:10:57,040 --> 00:10:59,230 >> HIZLARIA 1: kokapena besterik ez dut. 154 00:10:59,230 --> 00:11:02,920 Baina benetan harrigarria da, uste dut, besterik ez nola nonahiko softwarea eta kode eta 155 00:11:02,920 --> 00:11:04,230 Tresna hau atsegin benetan. 156 00:11:04,230 --> 00:11:07,685 Beraz, norabidea zaporea da eta bertan joan ahal izango duzu. 157 00:11:07,685 --> 00:11:10,620 Oh, ez gehiago Appliance gaur. 158 00:11:10,620 --> 00:11:14,640 Beno, benetan tragikoa erritmoaren da Emandako puntu saiatu besterik ez dut egin. 159 00:11:14,640 --> 00:11:18,670 >> Eskubidea, eta, beraz dezagun abiarazteko Fusio berriro. 160 00:11:18,670 --> 00:11:20,800 Gogorarazi geroago. 161 00:11:20,800 --> 00:11:24,190 Guztiak eskubidea dute, eta lortu beharko duzu beti bat alde batera jo zenuen email bat lortu bada 162 00:11:24,190 --> 00:11:25,460 horrela nabarituko. 163 00:11:25,460 --> 00:11:29,940 Eskubidea, eta, beraz, azken astean gogoratzen duten hasi da atzera-azal hau dugu 164 00:11:29,940 --> 00:11:31,380 geroago kate bat bezala ezagutzen da. 165 00:11:31,380 --> 00:11:34,700 >> katea datu-mota hori gogorarazten CS50 liburutegian izendatu zuten. 166 00:11:34,700 --> 00:11:37,740 Eta prestakuntza gurpilak zati da egingo dela, orain hasiko off hartzeko. 167 00:11:37,740 --> 00:11:41,280 Erabilgarria kontzeptua hasieratik izan zen. 168 00:11:41,280 --> 00:11:43,750 Baina orain iritsi da joan interesgarri eta gehiago indartsu 169 00:11:43,750 --> 00:11:48,330 benetan ikusten kanpaia azpian, kate bat da, besterik gabe, zer esan genuen? 170 00:11:48,330 --> 00:11:50,500 >> Bai, beraz, llamado char * da. 171 00:11:50,500 --> 00:11:53,860 * Eta bertan adierazten du ez dagoela da Helbide mota batzuk parte hartzen dute. 172 00:11:53,860 --> 00:11:58,690 Eta beraz, char * esan duzun esan besterik ez duzu aldagai baten datu mota bat da, 173 00:11:58,690 --> 00:11:59,290 erakuslea da orain. 174 00:11:59,290 --> 00:12:01,770 Izan ere, ez dagoela izarra dago besterik esan nahi du zarela geratuko 175 00:12:01,770 --> 00:12:03,020 izenekoak erakuslea. 176 00:12:03,020 --> 00:12:06,220 Eta erakuslea hori itxuraz joan gordetzeko, eta helbidea 177 00:12:06,220 --> 00:12:07,810 noski, karaktere bat. 178 00:12:07,810 --> 00:12:08,960 >> Orain, zergatik ez du zentzurik hau? 179 00:12:08,960 --> 00:12:11,200 Beno, zer kate bat da kanpaia azpian? 180 00:12:11,200 --> 00:12:15,130 Beno, denbora pixka bat gara esaten kanpaia azpian duen katea da 181 00:12:15,130 --> 00:12:18,460 besterik h-e-l-l-o, adibidez. 182 00:12:18,460 --> 00:12:21,585 >> Baina honi buruz hitz egin dugu , funtsean, array bat izanik. 183 00:12:21,585 --> 00:12:25,410 Sorta bat, eta, ondoren, begiratu apur bat honetan bezala, horietako bakoitzean 184 00:12:25,410 --> 00:12:26,460 hartzen mokadu bat. 185 00:12:26,460 --> 00:12:28,710 Eta gero, esan dugu ez dagoela da zerbait berezia atzera hemen, 186 00:12:28,710 --> 00:12:31,270 backslash 0, edo nulua amaiera. 187 00:12:31,270 --> 00:12:35,230 >> Denbora honetan guztian, beraz, hemen du kate bat izan da. 188 00:12:35,230 --> 00:12:38,320 Baina benetan, kate bat da benetan helbide bat. 189 00:12:38,320 --> 00:12:43,210 Helbideak eta, ikusiko dugun bezala, ohi dira 0x dute aurrizki konbentzio arabera. 190 00:12:43,210 --> 00:12:44,540 Zer esan nahi du 0x adierazteko? 191 00:12:44,540 --> 00:12:45,970 Norbaitek ezagutzen? 192 00:12:45,970 --> 00:12:47,320 >> Beraz, esan nahi du, besterik ez da hamaseitarrean. 193 00:12:47,320 --> 00:12:52,360 Beraz, gogora ekarri, duzu, agian, benetan, pst tik 1, nire ustez, bero-up batean 194 00:12:52,360 --> 00:12:55,740 galdera benetan galdetu gain idazkera hamaseitarra 195 00:12:55,740 --> 00:12:57,100 bitarra eta hamartarra da. 196 00:12:57,100 --> 00:13:00,460 Eta motibazioa hemen da hamaseitarra 16 daukazula 197 00:13:00,460 --> 00:13:01,770 at zure eskura zenbakiak. 198 00:13:01,770 --> 00:13:07,900 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, eta jarraian batek, b, c, d, e, f. 199 00:13:07,900 --> 00:13:10,430 >> Eta zenbatzen duzu horiek guztiak galtzen, 16 guztira, lortuko duzu. 200 00:13:10,430 --> 00:13:13,200 Beraz, honetan kontraste batekin dago hamartar, non 10 dugu 201 00:13:13,200 --> 00:13:14,690 zenbakiak, bederatzi bidez, 0. 202 00:13:14,690 --> 00:13:17,750 Bitarra da kontrastea da non besterik ez dugu, 0 eta 1. 203 00:13:17,750 --> 00:13:21,450 >> Baina, egun besterik dezakezu amaieran irudikatzeko zenbakiek berdinak, baina 204 00:13:21,450 --> 00:13:22,500 zertxobait ezberdinean. 205 00:13:22,500 --> 00:13:25,840 Eta hamaseitarrean ohikoa delako bihurtzen da - eta hori ikusiko dugu 206 00:13:25,840 --> 00:13:28,790 geroago ikastaroan - denean ere iritsi web testuinguruaren programazio 207 00:13:28,790 --> 00:13:32,100 HTML eta kolore-kodeak, hamaseitarra atsegina da. 208 00:13:32,100 --> 00:13:36,390 Digitu bakoitza delako, bihurtzen da, adierazten lau bit ezin hobeto. 209 00:13:36,390 --> 00:13:39,280 Beraz, lerro mota bat besterik ez da sortu nicely dugu azkenean gisa ikusten. 210 00:13:39,280 --> 00:13:44,720 Beraz, hori izango Ox123 edo zerbait horrela, adierazten helbide 123 211 00:13:44,720 --> 00:13:47,050 nonbait nire barruan ordenagailuaren memoria. 212 00:13:47,050 --> 00:13:50,600 >> Baina, noski, arazo batzuk sortzen delako azpiko honetan 213 00:13:50,600 --> 00:13:51,520 ezartzeko. 214 00:13:51,520 --> 00:13:55,930 Eta gogoratzen dut, hartu duten labankada bat hau bezalako funtzio bat ezartzeko - 215 00:13:55,930 --> 00:14:00,260 alderatu etenaren 0 dot c azken astean, hori nahiz eta zen bezala begiratu da 216 00:14:00,260 --> 00:14:04,270 eskubidea, ez, besterik gabe, ezin konparatu bi kateak behar bezala. 217 00:14:04,270 --> 00:14:07,470 >> Bota dut kanpoan nagusia, eta bota dut kanpoan iruzkinak besterik buruzko ikuspegia 218 00:14:07,470 --> 00:14:08,970 kodea duten interes hemen. 219 00:14:08,970 --> 00:14:10,660 Eta gorri hura da, akatsak dituelako. 220 00:14:10,660 --> 00:14:11,670 Zer arrazoi dela? 221 00:14:11,670 --> 00:14:15,890 >> Beno, goiko ez denean deklaratu dut Kate bat, zer zen benetan gertatzen 222 00:14:15,890 --> 00:14:17,260 kanpaia azpian? 223 00:14:17,260 --> 00:14:19,530 Beno, let me baino gehiago joan da, proiektatuko hemen eta marraztu duten. 224 00:14:19,530 --> 00:14:23,230 Beraz, deklaratu nuen, berriro ere, katea s GetString. 225 00:14:23,230 --> 00:14:26,640 >> Beraz, aurrera joan behar dut orain eta marraztu s benetan da. 226 00:14:26,640 --> 00:14:28,590 Plaza bat izango da hemen da joan. 227 00:14:28,590 --> 00:14:30,490 Eta aldarrikatzen dut duten 32 bit da. 228 00:14:30,490 --> 00:14:32,890 Gutxienez da normalean, gutxienez CS50 an 229 00:14:32,890 --> 00:14:34,520 ordenagailu asko-tresna. 230 00:14:34,520 --> 00:14:35,980 It s deitzera noa. 231 00:14:35,980 --> 00:14:39,070 >> Baina orain dela gogorarazten dugu izeneko GetString. 232 00:14:39,070 --> 00:14:41,430 Beraz GetString itzultzen, jakina, kate bat. 233 00:14:41,430 --> 00:14:45,790 H-e-l-l o-motak Erabiltzaileak sartu kaixo katea itzultzen. 234 00:14:45,790 --> 00:14:51,010 Eta kate hori, besterik gabe, esan dugun bezala, eta ondorioz sortu nonbait, zure ordenagailuaren memorian 235 00:14:51,010 --> 00:14:53,240 amaieran 0 barra batekin. 236 00:14:53,240 --> 00:14:56,650 Hau marraztu dut array bezala - edo karaktere bloke Alboko - 237 00:14:56,650 --> 00:14:58,330 benetan dela. 238 00:14:58,330 --> 00:15:01,790 >> Eta orain, zer da GetString benetan itzuli? 239 00:15:01,790 --> 00:15:04,340 Zein izan dira GetString itzuli denbora hori guztia? 240 00:15:04,340 --> 00:15:07,520 Beno, esaten dugu aste hauetan, aldez aurretik, kate bat itzultzen du. 241 00:15:07,520 --> 00:15:10,250 Baina, teknikoki, zer ez Bueltan GetString itxuraz? 242 00:15:10,250 --> 00:15:11,610 >> Ikusleak: helbide bat. 243 00:15:11,610 --> 00:15:12,600 >> HIZLARIA: 1 helbide bat. 244 00:15:12,600 --> 00:15:16,630 Zehazki helbide itzultzen du oso lehen ziztadak, edozein da. 245 00:15:16,630 --> 00:15:18,830 Mantentzea besterik ez dut bat, bi, hiru erabiliz da, komenigarria delako. 246 00:15:18,830 --> 00:15:21,380 >> Lehenengo helbidea itzultzen du katean pertsonaia. 247 00:15:21,380 --> 00:15:23,510 Eta aurreko astean esan genuen hori dela nahikoa. 248 00:15:23,510 --> 00:15:26,710 Ezin dugu beti irudikatu non katea amaieran zerbait 249 00:15:26,710 --> 00:15:30,150 gainean, errepikatzean agian, batekin begizta edo berriz, begizta edo antzeko zerbait 250 00:15:30,150 --> 00:15:34,990 dela, bakarrik "backslash 0" bilatzen, bereziak Sentinel pertsonaia. 251 00:15:34,990 --> 00:15:37,220 >> Eta, ondoren, ezagutzen dugun kate hori gertatzen luzera izango - 252 00:15:37,220 --> 00:15:37,980 kasu honetan - 253 00:15:37,980 --> 00:15:38,670 bost. 254 00:15:38,670 --> 00:15:43,800 Beraz, teknikoki zer GetString du da Ox123 itzultzen du kasu honetan. 255 00:15:43,800 --> 00:15:53,670 Eta teknikoki, gero, zer gertatzen da gorde dugu, s barruan, Ox123. 256 00:15:53,670 --> 00:15:56,460 Egunaren bukaeran, nahiz eta hau, nahiz eta kontzeptu berria, erakusle da, dute Oraindik 257 00:15:56,460 --> 00:15:57,350 besterik aldagai. 258 00:15:57,350 --> 00:16:00,440 Baina bit gordetzeko gertatuko direla kolektiboki irudikatzeko helbide bat. 259 00:16:00,440 --> 00:16:03,700 Beraz, teknikoki guztiak dira lortzen s gordetzen dira Ox123 da. 260 00:16:03,700 --> 00:16:04,680 >> Baina gizakiak gara - 261 00:16:04,680 --> 00:16:06,020 gaur egun, besteak beste, aurrera - 262 00:16:06,020 --> 00:16:09,290 benetan ez, arreta normalean gertatzen, zer da benetako helbidea da 263 00:16:09,290 --> 00:16:10,520 memoria zati batzuk. 264 00:16:10,520 --> 00:16:14,040 Besterik xehetasun-maila txikia da izan intelektualki interesgarri. 265 00:16:14,040 --> 00:16:15,440 Beraz, hau desegin noa. 266 00:16:15,440 --> 00:16:19,810 Eta horren ordez, gero eta maila altua, besterik esan denean erakusleak buruz ari gara hitz egiten duten 267 00:16:19,810 --> 00:16:22,170 Besterik gehiago marraztu dut lagungarria gezi hori transmititzen du 268 00:16:22,170 --> 00:16:26,060 ideia bera eta laburpenak kanpoan zer benetako Particulars 269 00:16:26,060 --> 00:16:27,700 azpiko helbidea ez da. 270 00:16:27,700 --> 00:16:33,290 >> Orain atzera joan gara kodea, zer gertatu da azken astean dugu katea t bada 271 00:16:33,290 --> 00:16:34,510 berdinen GetString? 272 00:16:34,510 --> 00:16:38,630 Beno, nik berriro ere bada, kaixo mota Une honetan, lortu dut 273 00:16:38,630 --> 00:16:40,460 memoria zatia beste. 274 00:16:40,460 --> 00:16:44,820 h-e-l-l-o backslash 0. 275 00:16:44,820 --> 00:16:48,320 >> Baina deitu nuen GetString delako bigarren aldiz - 276 00:16:48,320 --> 00:16:51,100 eta hau ezagutzen dut begira tik iturburu kodea GetString - nahiz 277 00:16:51,100 --> 00:16:54,350 da koinzidentzia kaixo izan zen, nahiz eta bitan idatzitako, GetString ez da 278 00:16:54,350 --> 00:16:55,890 optimizatu saiatzeko joan eta azkarra izan. 279 00:16:55,890 --> 00:16:58,550 Besterik ez da, beste zatia iritsi ordenagailua, hau da, memoria 280 00:16:58,550 --> 00:16:59,640 helbide batean izango da. 281 00:16:59,640 --> 00:17:02,330 Dezagun inori esan 456. 282 00:17:02,330 --> 00:17:04,079 >> Eta, orduan, zer da joan itzuliko da? 283 00:17:04,079 --> 00:17:08,030 456 itzuliko da joan gordetzeko eta bertan t. 284 00:17:08,030 --> 00:17:12,010 Beraz, zer da benetan gertatzen, buruzko ezkerraldean zatia da beste bat izan dut 285 00:17:12,010 --> 00:17:14,260 memoria, 32 bit normalean. 286 00:17:14,260 --> 00:17:16,720 Eta hor dago Ox456 joan behar. 287 00:17:16,720 --> 00:17:20,140 Baina, berriro ere, ez naiz hauetan interesa bereziki, zenbakiak jada. 288 00:17:20,140 --> 00:17:23,069 Besterik ez naiz abstraktuan joan marraztu gezi baten ondorioz. 289 00:17:23,069 --> 00:17:25,202 >> Beraz, hau da, orain berria azalpen bat. 290 00:17:25,202 --> 00:17:28,735 Baina, aldi berean zehatza ideia hori da izan da denbora honetan guztian gertatzen. 291 00:17:28,735 --> 00:17:33,150 Eta, beraz, arrazoia eta, ondoren, lehen honetan Konparatu beste bertsio zen buggy 292 00:17:33,150 --> 00:17:34,480 azken astean, zergatik da? 293 00:17:34,480 --> 00:17:38,000 Denean berdin berdin s baduzu t zer zara benetan 294 00:17:38,000 --> 00:17:40,550 kanpaia azpian alderatuz? 295 00:17:40,550 --> 00:17:41,910 >> Helbideak ari zara alderatuz. 296 00:17:41,910 --> 00:17:47,950 Eta besterik gabe, intuizioa, argi eta garbi, Ox123 ez da berdina Ox456 joan. 297 00:17:47,950 --> 00:17:49,380 Zenbaki horiek, bit horiek besterik ez dira desberdinak. 298 00:17:49,380 --> 00:17:53,220 >> Eta, beraz, koherentziaz, azken astean esan hainbat gauza idatzi duzu, nahiz eta 299 00:17:53,220 --> 00:17:55,360 hitzak izan ziren, hitzez hitz berdinak. 300 00:17:55,360 --> 00:17:58,770 Beraz, hau konpondu dugu. 301 00:17:58,770 --> 00:18:00,120 Layman en dagokionez, zer izan zen konpontzen da? 302 00:18:00,120 --> 00:18:02,110 >> Ikusleak: Erabili funtzio bat. 303 00:18:02,110 --> 00:18:02,870 >> HIZLARIA 1: Erabili funtzio bat. 304 00:18:02,870 --> 00:18:05,190 Ko edo parte hartzen ari dira, zalantzarik gabe, baina funtzio bat, zer egin? 305 00:18:05,190 --> 00:18:05,962 >> Ikusleak: kateak konparatzeko. 306 00:18:05,962 --> 00:18:07,390 >> HIZLARIA: 1 kateak konparatzeko. 307 00:18:07,390 --> 00:18:11,030 Beraz, hemen funtsezko arazoa zen zela besterik ez dut kontuan hartu 308 00:18:11,030 --> 00:18:15,870 kateak kalitatea izango definitu haien helbideak konparazioa. 309 00:18:15,870 --> 00:18:18,540 Eta, jakina, hori besterik muda orain behin zer gertatzen den ulertu 310 00:18:18,540 --> 00:18:19,510 kanpaia azpian. 311 00:18:19,510 --> 00:18:23,270 Benetan alderatu kateak ikusi bada Horrela, giza bat berdinak dira 312 00:18:23,270 --> 00:18:26,680 bi kateak berdinak kontuan hartu litzateke alderatu pertsonaia behar dugu 313 00:18:26,680 --> 00:18:28,070 pertsonaia for pertsonaia. 314 00:18:28,070 --> 00:18:30,020 >> Orain egin nezakeen hau oso tediously. 315 00:18:30,020 --> 00:18:32,240 Baina familiarly, gara begizta batek erabiltzen du. 316 00:18:32,240 --> 00:18:36,050 Eta bakarrik alderatu s tarte t tarte i aurka i. 317 00:18:36,050 --> 00:18:39,590 s tarte i gehi 1 t tarte aurka i plus 1, eta abar, barruan 318 00:18:39,590 --> 00:18:40,580 begizta bat. 319 00:18:40,580 --> 00:18:44,950 Eta lekuen dut edozein bi karaktere bada datoz, edo konturatzen naiz ooh hori bada, s 320 00:18:44,950 --> 00:18:48,410 t baino laburragoa edo luzeagoa t baino Berehala esan dezaket faltsuak, 321 00:18:48,410 --> 00:18:49,390 Oraindik ez dira berdinak. 322 00:18:49,390 --> 00:18:55,370 >> Baina, s eta t bidez dut bada, eta esan berean, bera, bera, bera, berean, amaiera 323 00:18:55,370 --> 00:18:58,520 kateak bai, esan dezaket Egia da, berdinak dira. 324 00:18:58,520 --> 00:19:01,040 Beno, zorionez, urte norbait idatzi zuen Gurekin kodea duten. 325 00:19:01,040 --> 00:19:03,790 >> Eta hori StrComp deitu dute katea alderatu ditu. 326 00:19:03,790 --> 00:19:11,900 Eta nahiz eta pixka kontagailu bat da intuitiboa, StrComp itzultzen 0 horiek galtzen 327 00:19:11,900 --> 00:19:14,520 bi kateak, s eta t berdinak dira. 328 00:19:14,520 --> 00:19:18,090 Baina balio negatiboa itzultzen du s bada beharko t alfabetikoki aurretik etorri edo 329 00:19:18,090 --> 00:19:20,610 balio positibo behar bada etorri t alfabetikoki ondoren. 330 00:19:20,610 --> 00:19:24,030 >> Beraz, nahi izanez gero, inoiz zerbait ordenatzeko, bihurtzen da StrComp hori erabilgarria da. 331 00:19:24,030 --> 00:19:26,660 Ez baitu esan bai edo ez, berdin edo ez. 332 00:19:26,660 --> 00:19:30,440 Dituzu ordenatzen zentzua gustatzen hiztegi bat agian. 333 00:19:30,440 --> 00:19:33,770 StrComp beraz, s koma t berdin funtzioak 0 itzultzen du esan nahi 334 00:19:33,770 --> 00:19:35,200 kateak dira benetan berdinak. 335 00:19:35,200 --> 00:19:38,680 Duenak idatzi zuen funtzio hori delako urte zentzuzkoa erabiltzen begizta bat egiteko 336 00:19:38,680 --> 00:19:42,840 edo, aldiz, begizta edo horrelako zerbait karaktere baino gehiago integratzeko berriro 337 00:19:42,840 --> 00:19:45,270 eta behin eta berriro. 338 00:19:45,270 --> 00:19:47,300 >> Baina bi arazo sortu hemen. 339 00:19:47,300 --> 00:19:48,750 Hau izan zen copy0.c. 340 00:19:48,750 --> 00:19:51,680 Eta gorriz bi da flawed delako. 341 00:19:51,680 --> 00:19:52,800 Eta zer egiten dugu hemen? 342 00:19:52,800 --> 00:19:54,310 Beno, lehenengo GetString deitu nuen. 343 00:19:54,310 --> 00:19:56,255 Eta s balioa bueltan gordetzen dut. 344 00:19:56,255 --> 00:20:00,260 Beraz, hori da antzeko moduan Argazkian goiko zati honetan. 345 00:20:00,260 --> 00:20:01,490 >> Baina, zer dator ondoren? 346 00:20:01,490 --> 00:20:04,980 Beno, goazen aurrera nau eta kentzeko hau osoan mordo bat. 347 00:20:04,980 --> 00:20:09,650 Denboran atzera egingo dugu, non dugu izan da, hau da, orain koherente batera 348 00:20:09,650 --> 00:20:10,940 lerro bat han. 349 00:20:10,940 --> 00:20:11,400 >> I egiaztatu. 350 00:20:11,400 --> 00:20:13,450 S bada berdin berdin 0. 351 00:20:13,450 --> 00:20:18,670 Orain, azkar bat albo ohar, noiz baliteke GetString 0 itzultzeko? 352 00:20:18,670 --> 00:20:19,580 Ez dago behar adina memoria. 353 00:20:19,580 --> 00:20:19,880 Eskuin? 354 00:20:19,880 --> 00:20:22,310 >> Arraroa hori gertatuko da, Zalantzarik gabe, ordenagailu bat da an 355 00:20:22,310 --> 00:20:24,740 got megs ehunka edo are RAM kontzertuak. 356 00:20:24,740 --> 00:20:27,080 Baina, nola teorian, itzultzeko 0, batez ere 357 00:20:27,080 --> 00:20:28,080 Erabiltzaileak ez du elkarlanean aritzeko. 358 00:20:28,080 --> 00:20:31,640 Ez duzu, modu ez bezala asmoa idatzitako ezer eta trikimailu 359 00:20:31,640 --> 00:20:34,100 Itzuli sartu GetString 0 eraginkortasunez. 360 00:20:34,100 --> 00:20:35,470 >> Beraz, hori egiaztatzeko da joan. 361 00:20:35,470 --> 00:20:39,430 Duzun edozein galtzen hasi delako lortzeko, dagoeneko, segmentazio hutsegite - 362 00:20:39,430 --> 00:20:42,280 izan ere, ziurrenik, iturria izan da frustrazio batzuk - 363 00:20:42,280 --> 00:20:46,150 horiek dira ia beti emaitza memoria lotutako akats. 364 00:20:46,150 --> 00:20:50,440 Nolabait sortu messed duzun aldean bat erakuslea, nahiz eta ez duzu konturatzen 365 00:20:50,440 --> 00:20:51,530 ez zen erakuslea. 366 00:20:51,530 --> 00:20:55,260 Beraz, eragindakoak izan dezakezu segmentazio aste bat erabiliz hasieran hutsegite 367 00:20:55,260 --> 00:21:02,100 baten antzeko zerbait begizta edo pixka bat begizta eta array bat Urrunegi joan 368 00:21:02,100 --> 00:21:05,900 array batzuk mugak iragan izendatu dituzu bi aste hasi 369 00:21:05,900 --> 00:21:06,690 bereziki. 370 00:21:06,690 --> 00:21:09,220 >> Egin duzu, agian, nahiz eta arazo batean ezarri Breakout lau. 371 00:21:09,220 --> 00:21:12,910 Nahiz eta ziurrenik ez du ikusi edozein banaketa kodea Izarren 372 00:21:12,910 --> 00:21:17,410 Breakout, bihurtzen da GRect duten eta GOval eta beste hainbat gauza, 373 00:21:17,410 --> 00:21:19,650 horiek dira benetan erakusleak kanpaia azpian. 374 00:21:19,650 --> 00:21:23,430 >> Baina Stanford, gu bezala, larrua moduko duten xehetasun gutxienez liburutegiak for 375 00:21:23,430 --> 00:21:26,540 helburuekin, askoz dugun bezala katea eta char * da. 376 00:21:26,540 --> 00:21:30,060 Baina GRect eta GOval eta horiek guztiak gauzak you guys diren edo erabil 377 00:21:30,060 --> 00:21:32,630 aste honetan daude, azken finean, memoria helbideak. 378 00:21:32,630 --> 00:21:33,650 Ez besterik ez duzu ezagutzen. 379 00:21:33,650 --> 00:21:37,240 >> Beraz, ez da harritzekoa, orduan, agian, batzuk baino gehiago bidaia agian duzula 380 00:21:37,240 --> 00:21:38,580 segmentazio hutsegite. 381 00:21:38,580 --> 00:21:41,290 Baina zer da interesgarria hemen, orain, 0 dugu dugu egiaztatu ondoren 382 00:21:41,290 --> 00:21:43,460 katea t lortzen s. 383 00:21:43,460 --> 00:21:44,690 Beno, let me t deklaratzen. 384 00:21:44,690 --> 00:21:47,730 Marrazteko, plaza bat egingo dut, 32 bit, deitu t. 385 00:21:47,730 --> 00:21:49,740 Eta, ondoren, egin dut lortzen s. 386 00:21:49,740 --> 00:21:51,130 >> Beno, zer esan nahi du? 387 00:21:51,130 --> 00:21:53,280 Beno, pixka bat zaila dela uste Irudia buruz jakintsua. 388 00:21:53,280 --> 00:21:55,025 Baina dezagun pentsatu zer x barruan da? 389 00:21:55,025 --> 00:21:59,430 Zer da literalki, aldagai honen barruan? 390 00:21:59,430 --> 00:22:01,500 Ox123 balioa du. 391 00:22:01,500 --> 00:22:05,815 >> Beraz, esan katea t lortzen s, besterik literalki esan hartzeko kopurua 392 00:22:05,815 --> 00:22:10,070 s, eta horrek Ox123 da eta Ox123 jarri. 393 00:22:10,070 --> 00:22:13,740 Edo pictorially, badut mota abstraktuak kanpoan xehetasun horretako ditu 394 00:22:13,740 --> 00:22:16,600 hitzez hitz egiten eragina hau baita. 395 00:22:16,600 --> 00:22:22,110 >> Beraz, orain, uste itzuli zenean, azken astean aurretik kapitalista T. I dugu 396 00:22:22,110 --> 00:22:23,800 egin parentesi T 0. 397 00:22:23,800 --> 00:22:27,150 Beno, T-tarte 0, nahiz bat da erakuslea da, nahiz eta gisa tratatzeko dezakezu 398 00:22:27,150 --> 00:22:29,220 array bat da, plaza bat tarte idazkera. 399 00:22:29,220 --> 00:22:31,550 >> Beraz, non da T-tarte 0? 400 00:22:31,550 --> 00:22:32,990 Beno, h da. 401 00:22:32,990 --> 00:22:36,800 Eta beraz, kode-lerro hori erabili dugu, bi goiko, zein c type.h hori da 402 00:22:36,800 --> 00:22:38,460 goiburu-fitxategia da, non da oso izendatu zuten. 403 00:22:38,460 --> 00:22:44,410 H. hau zaren capitalizing Baina noski, hori berean zehatza h hori da 404 00:22:44,410 --> 00:22:46,540 s barruan, nolabait esateko. 405 00:22:46,540 --> 00:22:51,930 Eta, beraz, orain, aldatu egin duzu, edo kapitalizatutako bai jatorrizko eta 406 00:22:51,930 --> 00:22:53,120 izenekoak kopia. 407 00:22:53,120 --> 00:22:56,620 Zuen duzulako ez egin kopia giza modu bat izan nahi luke. 408 00:22:56,620 --> 00:22:59,710 >> Beraz, zer izan zen fix hemen, copy1.c azken astean? 409 00:22:59,710 --> 00:23:03,070 410 00:23:03,070 --> 00:23:05,580 Funtzioak, eta, beraz, benetan izan dugu kopiatzeko katea. 411 00:23:05,580 --> 00:23:08,700 Eta, batez ere, zer egin behar dugu egin ahal izateko kate kopiatzeko? 412 00:23:08,700 --> 00:23:12,070 >> Beno, bertsio hau berde hemen nago da nahiko maila baxua egingo. 413 00:23:12,070 --> 00:23:14,260 Baina, egia esan, funtzio honekin ezin dira laguntzeko. 414 00:23:14,260 --> 00:23:17,710 Baina oinarrizko bat, eta gehien familiar bat, gutxienez, izango da laster 415 00:23:17,710 --> 00:23:19,600 digu ezagunak, hau da - 416 00:23:19,600 --> 00:23:21,910 lehenengo on-line bat, beraz, berdez kode orain. 417 00:23:21,910 --> 00:23:23,970 >> Rewrote dut s * karaktere gisa. 418 00:23:23,970 --> 00:23:25,250 Ez funtzionala ez aldea dago. 419 00:23:25,250 --> 00:23:28,790 Bota dut kanpoan CS50 liburutegia eta It dut deituz, zer da char * bat. 420 00:23:28,790 --> 00:23:31,640 >> Orain, dot, dot, dot, han izan ziren zenbait errore egiaztapena ez da hori 421 00:23:31,640 --> 00:23:33,200 interesgarri buruz hitz egiteko berriro. 422 00:23:33,200 --> 00:23:34,710 Beraz, orain t izendatu. 423 00:23:34,710 --> 00:23:35,780 Handiegia da char * bat. 424 00:23:35,780 --> 00:23:38,280 Beraz, apur bat karratu marraztu dut aurretik bezalako pantaila. 425 00:23:38,280 --> 00:23:41,870 >> Baina eskuin aldean, malloc, da memoria esleitu esan genuen. 426 00:23:41,870 --> 00:23:44,130 Beraz, memoria esleitu pusketa batzuk. 427 00:23:44,130 --> 00:23:48,830 Eta zenbat byte egiten dugu benetan nahi esleitu, ez dirudi? 428 00:23:48,830 --> 00:23:50,340 >> Beno, s luzera katea. 429 00:23:50,340 --> 00:23:52,310 Hala bada kaixo esan da bost izango da. 430 00:23:52,310 --> 00:23:53,950 Esan h-e-l-l-o dugu. 431 00:23:53,950 --> 00:23:55,090 Bost byte beraz. 432 00:23:55,090 --> 00:23:57,960 >> Baina gero plus 1, 1, zergatik? 433 00:23:57,960 --> 00:23:58,830 0 pertsonaia. 434 00:23:58,830 --> 00:24:03,640 Ez badugu utzi gela lasaia honetan dugun agian nahi gabe sortu egoeraren bat 435 00:24:03,640 --> 00:24:05,600 non katea da h-e-l-l-o. 436 00:24:05,600 --> 00:24:08,470 Eta, ondoren, hurrengo denbora GetString da deitu eta idatzi dut, adibidez, 437 00:24:08,470 --> 00:24:14,020 David, D-a-v-i-d, ordenagailua joan Hori da benetan pentsatzea 438 00:24:14,020 --> 00:24:18,900 h-e-l-l-o-d-bat-v-i-d ez delako ez hitz horiek artean hausteko. 439 00:24:18,900 --> 00:24:19,810 >> Beraz, break behar dugu. 440 00:24:19,810 --> 00:24:20,720 Beraz, ez dugu nahi, bost. 441 00:24:20,720 --> 00:24:22,100 Sei byte nahi dugu. 442 00:24:22,100 --> 00:24:23,110 >> Eta byte diot. 443 00:24:23,110 --> 00:24:25,220 Baina denbora Karaktereen tamaina da. 444 00:24:25,220 --> 00:24:28,040 Teknikoki karaktere ia beti byte bakar bat. 445 00:24:28,040 --> 00:24:31,030 >> Baina gure kodea eramangarri egiteko, beraz, hitz egiteko eta horrela lan egiten du 446 00:24:31,030 --> 00:24:33,750 ordenagailu desberdinetan nahiz eta agian bada izan zertxobait azpian ezberdinak 447 00:24:33,750 --> 00:24:36,590 kanpaia, eta oro noa esan Karaktereen tamaina, beraz, 448 00:24:36,590 --> 00:24:37,660 nire kodea du beti funtzionatzen. 449 00:24:37,660 --> 00:24:40,610 Eta ez dut besterik konpilatu berritzea nire ordenagailu delako edo erabili 450 00:24:40,610 --> 00:24:42,140 beste plataforma batzuetan. 451 00:24:42,140 --> 00:24:45,300 >> Beraz dut 6 aldiz tamaina karaktere bat, eta hori gertatzen 1 izan behar. 452 00:24:45,300 --> 00:24:47,440 Beraz, bide malloc zezakeen ematen dit sei byte. 453 00:24:47,440 --> 00:24:49,140 Zer da benetan hori egiten? 454 00:24:49,140 --> 00:24:52,810 Beno, goazen atzera jaurti me denbora hemen non daude istorioa dugu. 455 00:24:52,810 --> 00:24:57,620 >> Beraz, bada, atzera joan naiz hemen, deklaratu dut izeneko t char * bat. 456 00:24:57,620 --> 00:25:00,280 Nik orain izeneko sei byte for malloc. 457 00:25:00,280 --> 00:25:06,400 Eta orain, horiek sei marraztu dut besterik array lehenago bezala byte. 458 00:25:06,400 --> 00:25:10,570 Baina, egia esan, ez dakit zer array honen barruan. 459 00:25:10,570 --> 00:25:14,640 >> Memoria esleitu bada bihurtzen da hori ezin duzu fidatzen ez dagoela da, zenbait 460 00:25:14,640 --> 00:25:15,810 balioa ez da ezaguna. 461 00:25:15,810 --> 00:25:18,400 It zitekeen zerbait erabilitako bestela, beste funtzio batzuk, beste batzuk 462 00:25:18,400 --> 00:25:19,630 kode lerro idatzi duzu. 463 00:25:19,630 --> 00:25:22,870 Beraz, oro har dugu deitu zabor horiek balioak eta horiek marrazteko, beharbada, gisa 464 00:25:22,870 --> 00:25:26,170 galdera ikurrak, besterik adierazi dugun ez dakit zer da benetan bertan. 465 00:25:26,170 --> 00:25:30,390 Eta hori big deal ez da hain luzea dugu smart nahikoa dira horiek gainidatzi 466 00:25:30,390 --> 00:25:34,550 zabor zenbakien balioak edo karakteretan buruz dugun zaintzeko. 467 00:25:34,550 --> 00:25:36,340 >> Beraz, kasu honetan ere, Zer egin behar dut? 468 00:25:36,340 --> 00:25:38,670 Beno, nire lerro kodea ondoan, lau izan dut. 469 00:25:38,670 --> 00:25:41,350 INT 0 get i, n lortuko katea s luzera. 470 00:25:41,350 --> 00:25:42,750 Beraz, begizta ezaguna da. 471 00:25:42,750 --> 00:25:45,875 Baino txikiagoa edo berdina da n I, ohi da, batez ere. 472 00:25:45,875 --> 00:25:47,500 >> Baina oraingoan nahita da. 473 00:25:47,500 --> 00:25:51,890 +, Eta, ondoren, I + I, besterik gabe, egin t tarte i lortzen s. 474 00:25:51,890 --> 00:25:56,320 Nire irudi honen itxura duelako at Une honetan, t batean gordetzen da 475 00:25:56,320 --> 00:25:59,530 memoria ausazko zatia duen helbidea diren balioak dira generoa. 476 00:25:59,530 --> 00:26:03,030 Baina berehala egin dudan bezala t tarte 0 jartzen dit hemen. 477 00:26:03,030 --> 00:26:07,430 >> Eta zer amaitzen ohitu marraztuta dago? 478 00:26:07,430 --> 00:26:08,740 Amaituko dugu h jarriz. 479 00:26:08,740 --> 00:26:11,170 Hori delako zer s tarte 0 da. 480 00:26:11,170 --> 00:26:14,300 Eta, ondoren, gauza bera egiteko e, eta l, eta l, eta o. 481 00:26:14,300 --> 00:26:17,930 >> n, zergatik joan nintzen bidez n bera? 482 00:26:17,930 --> 00:26:19,200 0 pertsonaia delako. 483 00:26:19,200 --> 00:26:23,580 Beraz, argi izan behar du, eta, ondoren, badut benetan ezabatuko edozein dela ere zabor horiek 484 00:26:23,580 --> 00:26:28,870 balioak dira eta, ondoren, benetan marraztu en Zer espero dut, hori s tarte 1, 2, 485 00:26:28,870 --> 00:26:32,440 3, 4, plus hori amaierako pertsonaia berriak. 486 00:26:32,440 --> 00:26:36,080 >> Eta, beraz, orain dot iraganeko jarraitu dugu, bada, dot, lotura zuzena bertsioan dot 487 00:26:36,080 --> 00:26:41,930 eta larriz t tarte 0 nuke, la noski, izan capitalizing besterik honetan 488 00:26:41,930 --> 00:26:47,050 Guy hemen, zein kontzeptualki, izan da, azken finean, helburua. 489 00:26:47,050 --> 00:26:48,040 Beraz, hori da erakuslea da. 490 00:26:48,040 --> 00:26:51,430 >> Eta eman duzu erabili astez Gaur egun, kateak testuinguruan. 491 00:26:51,430 --> 00:26:53,530 Baina kanpaia azpian Oraindik dute apur bat konplexuagoa da. 492 00:26:53,530 --> 00:26:57,520 Baina haiei buruzko bazaude honetan piktoriko Inprimaki I proposatzen ari dira 493 00:26:57,520 --> 00:27:01,720 ziurrenik ez dute beldurgarriak duten guztiak agian, lehen, lehen begiratuan, badirudi, 494 00:27:01,720 --> 00:27:04,730 bereziki, berriak, besteak beste, sintaxia erabiliz. 495 00:27:04,730 --> 00:27:07,290 Erakusleak buruzko edozein galdera, kateak, edo karakteretan? 496 00:27:07,290 --> 00:27:07,580 Bai? 497 00:27:07,580 --> 00:27:09,252 >> Publikoa: Ezin duzu atzera to [INAUDIBLE] da? 498 00:27:09,252 --> 00:27:10,502 >> HIZLARIA: 1 ziur. 499 00:27:10,502 --> 00:27:14,058 500 00:27:14,058 --> 00:27:19,525 >> Ikusleak: Beraz, nola zure azken etorriko lerro, ez duzu bat * t line 501 00:27:19,525 --> 00:27:21,513 eta lerroan s * bat? 502 00:27:21,513 --> 00:27:23,004 Ez da erreferentzia duzu - 503 00:27:23,004 --> 00:27:24,640 >> HIZLARIA: 1 Ah, benetan ona galdera bat. 504 00:27:24,640 --> 00:27:26,800 Zergatik ez da * t eta * s bat behar dut? 505 00:27:26,800 --> 00:27:30,340 Labur-labur, azken astean, gure bezalakoa delako aldatzeko funtzioa, esan nuen denean 506 00:27:30,340 --> 00:27:33,350 dituzu erakuslea bitartekoak arabera horrek ez joan egin dugun bezala, 507 00:27:33,350 --> 00:27:36,590 fisikoki etapa izan zen benetan erabili star operadorea. 508 00:27:36,590 --> 00:27:40,570 >> Bihurtzen da, plaza-tarte hori idazkera da, zer deitu sintaktikoa dugu 509 00:27:40,570 --> 00:27:44,190 azukrea, besterik sexy modu bat da bere takigrafia idazkera esateko 510 00:27:44,190 --> 00:27:45,950 zehazki zer deskribatzen ari zaren. 511 00:27:45,950 --> 00:27:49,385 Baina apur bat gehiago intuitiboa da. 512 00:27:49,385 --> 00:27:53,510 Eta egiteko arriskua dagoen honetan, badirudi gehiago konplexua behar baino izan, 513 00:27:53,510 --> 00:27:56,990 benetan zer gertatzen ari da hemen honako hau da: - 514 00:27:56,990 --> 00:28:01,450 Diot * t esan nahi izanez gero, joan helbidea t gordetzen dira. 515 00:28:01,450 --> 00:28:04,350 >> Beraz, literalki, t bada gordetzeko h horren helbidea 516 00:28:04,350 --> 00:28:07,300 hasiera batean, * t bitarteko joan hemen. 517 00:28:07,300 --> 00:28:10,730 Orain, zer t tarte 0 esan nahi du? 518 00:28:10,730 --> 00:28:11,560 Zehatza gauza bera. 519 00:28:11,560 --> 00:28:13,510 Besterik ez da apur bat gehiago Erabiltzaileak lagunarteko idazten. 520 00:28:13,510 --> 00:28:14,430 >> Baina ez dut egin oraindik. 521 00:28:14,430 --> 00:28:17,800 Ezin dut besterik esateko * t lortzen * s. 522 00:28:17,800 --> 00:28:19,440 Zer egingo dut gero egiten delako? 523 00:28:19,440 --> 00:28:22,950 Jarriz izango nuke h, h, h, h, h Gauza osoan zehar. 524 00:28:22,950 --> 00:28:22,995 Eskuin? 525 00:28:22,995 --> 00:28:26,020 >> * T delako da, t-en helbide joan. 526 00:28:26,020 --> 00:28:27,580 Baina barruan gaude begizta baten. 527 00:28:27,580 --> 00:28:32,150 Eta zer balio naiz incrementing, jakina, iterazio bakoitzean? 528 00:28:32,150 --> 00:28:32,690 i. 529 00:28:32,690 --> 00:28:34,590 >> Baina, ez, aukera bat da hemen, ezta? 530 00:28:34,590 --> 00:28:37,870 Nahiz eta hau sentitzen da lortzean bezalako pixka bat sofistikatuagoa 531 00:28:37,870 --> 00:28:40,730 plaza-tarte idazkera baino denbora pixka bat erabiltzen dugu - 532 00:28:40,730 --> 00:28:43,840 nire h aldaketa desegin me han - 533 00:28:43,840 --> 00:28:48,870 hala ere, hau da, orain apur bat lortzeko fancier, oinarrizko ideia, bada, * t 534 00:28:48,870 --> 00:28:53,630 esan nahi du, eta hemen, * t besterik ez da t-en helbide joan. 535 00:28:53,630 --> 00:28:54,990 >> Baina zer helbidea izan zen t? 536 00:28:54,990 --> 00:28:56,850 Zenbakia erabiliz mantendu dugu? 537 00:28:56,850 --> 00:29:00,540 Ox456 bezala, dezagun atzera ekarri duten besterik gabe, eztabaida mesedetan. 538 00:29:00,540 --> 00:29:05,380 Beno, nahi dut, e batean lortu bada, t katea, nahi dut joan, 539 00:29:05,380 --> 00:29:06,460 funtsean, 456. 540 00:29:06,460 --> 00:29:09,230 >> Edo, hobeto esanda, 457. 541 00:29:09,230 --> 00:29:10,590 Behar dut bat gehitzeko. 542 00:29:10,590 --> 00:29:11,790 Baina hori egin ahal izango dut, ezta? 543 00:29:11,790 --> 00:29:14,680 T, nahiz eta marrazki delako mantendu dut gezi bat bezala, gaur egun ere, oso bat besterik ez 544 00:29:14,680 --> 00:29:16,570 zenbakia, Ox456. 545 00:29:16,570 --> 00:29:21,400 Eta gehitu dut bat dagoela, edo gehiago oro har, gehitu dut dagoela I can 546 00:29:21,400 --> 00:29:24,350 benetan, zehazki non eskuratu nahi dut. 547 00:29:24,350 --> 00:29:26,260 Beraz, ez dut hori izanez gero - 548 00:29:26,260 --> 00:29:28,970 eta hau da, zer egun erakuslea aritmetika - 549 00:29:28,970 --> 00:29:30,375 Lerro hau ezabatu ahal dut. 550 00:29:30,375 --> 00:29:33,550 Zein da, sinceramente, argiagoa eta uste dut apur bat gehiago lagungarri irakurtzeko. 551 00:29:33,550 --> 00:29:35,970 Baina hau ez da zuzena gutxiago. 552 00:29:35,970 --> 00:29:38,570 >> Kode-lerro hau gaur egun erabiltzen ari da erakuslea aritmetika. 553 00:29:38,570 --> 00:29:40,920 Joan dela esaten honako helbide - 554 00:29:40,920 --> 00:29:44,670 edozein dela t hasiera da, eta horrek t gehi i, eta hori da, hasiera batean, 555 00:29:44,670 --> 00:29:45,730 0 da, eta hori handia da. 556 00:29:45,730 --> 00:29:49,280 T hori hasieran esan nahi duelako plus 1, gehi 2, gehi 3, eta abar. 557 00:29:49,280 --> 00:29:51,030 Eta s-rekin akordio bera. 558 00:29:51,030 --> 00:29:52,750 >> Beraz sintaktiko honetan azukrea. 559 00:29:52,750 --> 00:29:55,900 Baina ulertzeko zer ari da benetan gertatzen kanpaia azpian, argudiatu nuke, 560 00:29:55,900 --> 00:29:57,410 da, benetan erabilgarria eta berez. 561 00:29:57,410 --> 00:30:00,620 Esan nahi du, gaur egun, ez delako ez da askoz gehiago magia gertatzen 562 00:30:00,620 --> 00:30:01,620 kanpaia azpian. 563 00:30:01,620 --> 00:30:03,920 Ez dira askoz gehiago izango da geruza ezin dugun zuritu zuretzat itzuli. 564 00:30:03,920 --> 00:30:04,810 Hau da, c. 565 00:30:04,810 --> 00:30:06,410 Eta hau da programazioa. 566 00:30:06,410 --> 00:30:08,002 Benetan ona galdera. 567 00:30:08,002 --> 00:30:11,570 >> Ondo da, beraz, akatsak izan zela programaren aurreko nengokion. 568 00:30:11,570 --> 00:30:12,650 swap zen flawed. 569 00:30:12,650 --> 00:30:14,070 Lan egin zuen, badirudi bada. 570 00:30:14,070 --> 00:30:17,390 Gogora ekartzea besterik ez da esnea gustatzen eta laranja zukua - dudan hasi 571 00:30:17,390 --> 00:30:18,660 gaurko manifestazio edateko. 572 00:30:18,660 --> 00:30:22,220 Beraz, laranja zukua eta gisa esnea, eduki bat erabili genuen 573 00:30:22,220 --> 00:30:26,200 aldi baterako aldakorra, tmp, egiteko aldi baterako, beraz, ondoren, izan dugu 574 00:30:26,200 --> 00:30:28,820 aldatu bere balioa, eta gero eguneratu b. 575 00:30:28,820 --> 00:30:32,870 >> Baina funtzio hau, esan dugu, edo honen programaren funtzio hau zen: 576 00:30:32,870 --> 00:30:35,670 idatzia izan zen, oker eta flawed, zergatik? 577 00:30:35,670 --> 00:30:38,870 578 00:30:38,870 --> 00:30:39,090 Bai? 579 00:30:39,090 --> 00:30:42,471 >> Ikusleak: [INAUDIBLE]. 580 00:30:42,471 --> 00:30:44,940 >> HIZLARIA: 1 Zehazki, noiz swap deitu - 581 00:30:44,940 --> 00:30:47,820 edo, oro har, duzunean deitu gehien funtzio - 582 00:30:47,820 --> 00:30:51,210 funtzioa duten argudioak badira primitiboak, nolabait esateko, eta ints karakteretan 583 00:30:51,210 --> 00:30:56,740 eta bikoitzak eta karroza, gauzak egin gabe ko, kopia bat ari zaren pasatzen 584 00:30:56,740 --> 00:30:57,540 argumentua. 585 00:30:57,540 --> 00:31:01,580 Beraz, bada, x zen eta 1 y 2 izan zen, bat joan 1 izan behar da, eta b 2 izango da. 586 00:31:01,580 --> 00:31:05,250 Baina beste zatiek izateko ari dira joan bit zatiak desberdinak du 587 00:31:05,250 --> 00:31:07,540 memoria gertatuko dela gordetzeko behar berdin-berdin balio. 588 00:31:07,540 --> 00:31:12,160 >> Beraz, kode hau da super perfektua eta b trukea ere. 589 00:31:12,160 --> 00:31:13,850 Etan aldaketa ez da ona - 590 00:31:13,850 --> 00:31:15,290 - Azken astean adibide 591 00:31:15,290 --> 00:31:16,390 x eta y. 592 00:31:16,390 --> 00:31:18,780 Berriro, dutelako Oraindik okerreko eremua. 593 00:31:18,780 --> 00:31:21,310 >> Orain, nola konpontzen joango gara? 594 00:31:21,310 --> 00:31:23,140 Funtzioa egin behar izan dugu uglier begiratu apur bat. 595 00:31:23,140 --> 00:31:25,250 Baina, berriro ere, kontuan hartu zer honek esan nahi du, besterik gabe. 596 00:31:25,250 --> 00:31:27,840 597 00:31:27,840 --> 00:31:31,500 >> Eta egia esan, let me, koherentzia, aldatzen gauza ez da, beraz, berdin- 598 00:31:31,500 --> 00:31:33,200 zer egin dugu. 599 00:31:33,200 --> 00:31:35,690 Aipatu dut azken astean bezala, ez du axola non doan. 600 00:31:35,690 --> 00:31:38,120 Izan ere, normalean, jarri nahi baduzu star ondoan aldagai izena. 601 00:31:38,120 --> 00:31:40,750 Baina apur bat errazagoa izango litzateke, uste dut * planteatzea ondoan 602 00:31:40,750 --> 00:31:44,910 datu gisa esan nahi du mota erakuslea da Kasu honetan int bat. 603 00:31:44,910 --> 00:31:46,270 >> Beraz, zer egiten ari naiz hemen I? 604 00:31:46,270 --> 00:31:49,590 Ez eman dit int beti esaten dut int beste bat, eta jarraian, 605 00:31:49,590 --> 00:31:50,810 Horietako bat, eta b deituz. 606 00:31:50,810 --> 00:31:52,460 Give me int baten helbidea. 607 00:31:52,460 --> 00:31:53,960 Give me int beste baten helbidea. 608 00:31:53,960 --> 00:31:56,330 Deitu horiek, eta b a-helbideak. 609 00:31:56,330 --> 00:32:00,860 >> Eta ondoren * idazkera erabiliz behera behean, helbideen horietako bakoitzaren joan 610 00:32:00,860 --> 00:32:05,290 jo behar da, bai lortu edo ezarri bere balioa. 611 00:32:05,290 --> 00:32:07,400 Baina bada salbuespen bat hemen. 612 00:32:07,400 --> 00:32:11,130 Zergatik ez dute I * baten ondoan aurkitu? 613 00:32:11,130 --> 00:32:15,070 Zergatik ez dut hau, adibidez? 614 00:32:15,070 --> 00:32:19,370 I behar bezala joan guztietan sentitzen da eta gauza osoa zuzendu. 615 00:32:19,370 --> 00:32:19,752 Bai? 616 00:32:19,752 --> 00:32:21,002 >> Ikusleak: [INAUDIBLE]. 617 00:32:21,002 --> 00:32:23,280 618 00:32:23,280 --> 00:32:25,480 >> HIZLARIA 1: ez dut deklaratu Kate gisa tmp. 619 00:32:25,480 --> 00:32:28,830 620 00:32:28,830 --> 00:32:34,950 Beraz, deklaratzen litzateke kasu honetan, tmp bat int baten helbidea izan. 621 00:32:34,950 --> 00:32:37,380 Baina hori ez da aski zer nahi dut, arrazoi pare bat. 622 00:32:37,380 --> 00:32:38,616 >> Ikusleak: Ez duzu nahi horiek aldatu ahal izateko. 623 00:32:38,616 --> 00:32:41,800 >> HIZLARIA: 1 Zehazki, ez dut aldatu nahi tmp duen ezer. tmp besterik ez da 624 00:32:41,800 --> 00:32:42,790 aste-ko gauzak. 625 00:32:42,790 --> 00:32:45,150 Guztiak dut nahi aldagai bat da zenbaki batzuk gordetzeko. 626 00:32:45,150 --> 00:32:47,330 Ez dut, nahiz eta helbideak zaintzeko une honetan. 627 00:32:47,330 --> 00:32:50,530 >> Behar dut, 32 bit edo beraz, int bat gordetzeko. 628 00:32:50,530 --> 00:32:56,690 Eta 32 bit horietan jarri nahi dut edozein dela ere ez da, beraz, hitz egiteko, baina 629 00:32:56,690 --> 00:33:01,260 zer bat da, hain zuzen ere. 630 00:33:01,260 --> 00:33:06,420 Helbide bat bada, * baita esan nahi du Hara joan eta balioa 1 izango dira. 631 00:33:06,420 --> 00:33:10,560 Esate baterako, azken astean, adibide batean edo b-ren kasuan, lortu 2 balioa. 632 00:33:10,560 --> 00:33:11,750 >> Beraz, benetan zer gertatzen ari da? 633 00:33:11,750 --> 00:33:15,070 Demagun argazki bat hemen marraztuko ditu me bakarrik aurre gain, gaur egun zati bat. 634 00:33:15,070 --> 00:33:18,580 Baina hau agertzen jarraituko du denbora luzez. 635 00:33:18,580 --> 00:33:22,430 >> Hori, nire erreklamatzeko, zein da zure ordenagailuaren da memoria bat exekutatzen duzun itxura 636 00:33:22,430 --> 00:33:24,060 programa, edozein programa. 637 00:33:24,060 --> 00:33:28,340 Programa bat exekutatzen baduzu, oso goian ordenagailuaren RAM - Baietz uste du 638 00:33:28,340 --> 00:33:33,530 Laukizuzen hau, benetan, zure gisa ordenagailuaren RAM memoria, guztiak 101 639 00:33:33,530 --> 00:33:36,920 bilioi byte ditu, guztiak bi milioi byte, haren bi gigabyte guztiak, 640 00:33:36,920 --> 00:33:39,910 edozein dela kantitatea duzu, hau da, dezagun, marraztu laukizuzen bat. 641 00:33:39,910 --> 00:33:43,260 Eta, programa bat exekutatzen baduzu aldarrikatzen dut Microsoft Word edo Chrome bezalako 642 00:33:43,260 --> 00:33:49,220 edo horrelako ezer egin, bit duen Microsoft edo Google idatzi - 643 00:33:49,220 --> 00:33:50,910 programa horien kasuan - 644 00:33:50,910 --> 00:33:54,490 zure ordenagailuaren memorian kargatzen non exekutatu ahal izango dira, 645 00:33:54,490 --> 00:33:57,520 azkar eta elikatutako CPU sartu da, eta horrek ordenagailua garunak da. 646 00:33:57,520 --> 00:34:00,940 >> Eta TAM ari dira oso gordetzen Zure programa goian, nolabait esateko. 647 00:34:00,940 --> 00:34:03,300 Bestela esanda, honen zati bat galtzen da memoria, klik bikoitza duzun 648 00:34:03,300 --> 00:34:05,740 Microsoft Word, bit etorri disko gogorra off. 649 00:34:05,740 --> 00:34:06,680 Dute RAM kargatzen. 650 00:34:06,680 --> 00:34:10,330 Eta horiek shove dugu gora, oso goian laukizuzena kontzeptuala da. 651 00:34:10,330 --> 00:34:13,010 >> Beno, zure memoria gainerako da gauza ezberdinak egiteko erabiltzen da. 652 00:34:13,010 --> 00:34:16,460 Oso goian abiarazi ikusten duzu datuak eta uninitialize datuak. 653 00:34:16,460 --> 00:34:20,500 Hau da, egin behar da gehien bat, eta konstanteak edo aldagai globalak 654 00:34:20,500 --> 00:34:21,340 duten balioak. 655 00:34:21,340 --> 00:34:22,980 Baina, denbora eta beste gehiago. 656 00:34:22,980 --> 00:34:25,150 >> Ondoren, zeure, zein izango duzu itzuli behar dugu. 657 00:34:25,150 --> 00:34:28,420 Baina behealdeko zati hori da bereziki germane oraintxe. 658 00:34:28,420 --> 00:34:30,210 Deiturikoak pila da. 659 00:34:30,210 --> 00:34:33,850 Beraz, gehienak D aretoa edozein like hemen campusa, erretiluak horiek baduzula 660 00:34:33,850 --> 00:34:37,210 besterik gabe, bata bestearen gainean eta horrek on pila elikadura eta whatnot jarri ahal izango duzu. 661 00:34:37,210 --> 00:34:40,139 Sistema informatiko batean pila oso antzekoa da. 662 00:34:40,139 --> 00:34:42,679 Erretiluan berriz ezean, dugu erabili jantokia eta, noski, ondorioz, 663 00:34:42,679 --> 00:34:45,710 gauzak egiteko erretiluak du edo fotograma - 664 00:34:45,710 --> 00:34:49,469 hauek ditugu deituko - ordenagailuko batean memoria erabiltzen da eduki 665 00:34:49,469 --> 00:34:51,610 aldagaiak eta baloreak. 666 00:34:51,610 --> 00:34:53,929 >> Beraz, benetan zer gertatzen den kanpaia azpian? 667 00:34:53,929 --> 00:34:55,820 Beno, let me baino gehiago irauli pantaila hemen. 668 00:34:55,820 --> 00:34:58,370 Eta dezagun besterik arreta behean momentu bat parte. 669 00:34:58,370 --> 00:35:02,770 Hau nire zati behean bada ordenagailuaren memoria bihurtzen da naizenean 670 00:35:02,770 --> 00:35:05,350 deitu funtzio nagusiak - den gertatzen, sinceramente, 671 00:35:05,350 --> 00:35:06,950 Niretzat automatikoki - 672 00:35:06,950 --> 00:35:10,510 Bat memoria zatia at lortu dut nire RAM beheko nolabait esateko. 673 00:35:10,510 --> 00:35:13,390 Eta hau da, non da nagusiak aldagai lokalak joan. 674 00:35:13,390 --> 00:35:16,770 Non argc eta argv agian da joan, eta edozein aldagai dut 675 00:35:16,770 --> 00:35:18,170 deklaratzeko barruan nagusiak. 676 00:35:18,170 --> 00:35:20,260 Amaituko dute behealdean nire ordenagailuaren RAM. 677 00:35:20,260 --> 00:35:25,040 >> Orain dela suposatzen nagusia deiak funtzio bat swap bezala, egin zuten bezala, azken astean? 678 00:35:25,040 --> 00:35:30,620 Beno, funtsean jarri berri dugu erretilu bat, marko berria, nire memoria zatia gainean. 679 00:35:30,620 --> 00:35:34,160 Eta hau bezala deskribatu dut trukatzeko funtzioa dute. 680 00:35:34,160 --> 00:35:35,770 >> Orain zer swap barruan da? 681 00:35:35,770 --> 00:35:39,240 Beno, azken astean programan oinarritzen da, eta Batetik, ikusi besterik ez dugu zati bat da, 682 00:35:39,240 --> 00:35:46,590 swap en markoaren barruan, edo swap en an iturria, zer aldagai? 683 00:35:46,590 --> 00:35:47,970 Beno, a eta b. 684 00:35:47,970 --> 00:35:51,850 Horiek bertako argumentuak ziren delako, plus bat hirugarren tmp. 685 00:35:51,850 --> 00:35:54,470 Beraz, benetan, eta hau marraztu izan nuen apur bat gehiago garbian. 686 00:35:54,470 --> 00:35:56,680 Dezagun aurrera me eta etiketa desegin. 687 00:35:56,680 --> 00:35:58,520 Eta utzi niri erreklamatzeko badakiela zer? 688 00:35:58,520 --> 00:36:00,560 >> bat da, ziurrenik, azkenean, hemen doaz. 689 00:36:00,560 --> 00:36:02,160 B dago, azkenean, hemen doaz. 690 00:36:02,160 --> 00:36:03,810 Tmp da eta, azkenean, hemen doaz. 691 00:36:03,810 --> 00:36:05,160 Orain, ordena agian izan apur bat desberdina da. 692 00:36:05,160 --> 00:36:06,840 Baina kontzeptu honen ideia da. 693 00:36:06,840 --> 00:36:11,490 >> Eta besterik gabe, kolektiboki, hau da, zer swap en markoa deitu dugu, edo 694 00:36:11,490 --> 00:36:12,136 jangela-areto tray. 695 00:36:12,136 --> 00:36:13,150 Eta nagusiak aztertzen dira berdinak. 696 00:36:13,150 --> 00:36:14,040 Baina ez dut marraztu duten. 697 00:36:14,040 --> 00:36:17,810 Baina non argc eta argv eta edozein bere x eta y aldagai bezala, tokiko 698 00:36:17,810 --> 00:36:18,940 baita ere izan daiteke. 699 00:36:18,940 --> 00:36:22,170 >> Beraz, kontuan hartu zer gertatzen ari da benetan denean swap deitu. 700 00:36:22,170 --> 00:36:26,370 Noiz swap deitzen duzunean, exekutatzen kodea bezalako hau da, ari zaren pasatuz, en 701 00:36:26,370 --> 00:36:30,670 buggy bertsioa, eta b x eta y-ren kopia gisa. 702 00:36:30,670 --> 00:36:34,300 Beraz, bada, orain ez dut marraztuko honetan pantailan - 703 00:36:34,300 --> 00:36:36,700 got hobea lortzeko honetan - 704 00:36:36,700 --> 00:36:40,850 Istorioa, beraz, neu nintzen kontatzeko buggy bertsio hau izan zen, noiz dugu 705 00:36:40,850 --> 00:36:46,130 deitu aldatu literalki bat eta b igaro osokoak gisa, benetan zer gertatzen ari da? 706 00:36:46,130 --> 00:36:48,250 >> Beno, benetan zer gertatzen ari da hori. 707 00:36:48,250 --> 00:36:52,850 Let me aurretik joan eta besterik gabe desegin argitzeko espazio batzuk hemen. 708 00:36:52,850 --> 00:36:54,720 Beraz, hau da nire ordenagailuaren memoria da. 709 00:36:54,720 --> 00:36:57,510 >> Beraz, bada, nik, adibidez - 710 00:36:57,510 --> 00:36:58,910 egia esan dezagun modu honetan - 711 00:36:58,910 --> 00:37:02,690 aldarrikatzen dut, hau da, x, gordetzeko bada balioa 1 besterik astetik bezala. 712 00:37:02,690 --> 00:37:05,930 Eta hau da, y, balio gordetzeko 2 bezala, azken astean. 713 00:37:05,930 --> 00:37:11,370 Eta hau da nagusia, noiz swap deitzen diot nik, horrela, neure burua emanez sarbide bat eta 714 00:37:11,370 --> 00:37:15,150 b tmp eta, hori aldarrikatzen dut hau da, eta hau da, 1. 715 00:37:15,150 --> 00:37:16,080 >> Hau da, b. 716 00:37:16,080 --> 00:37:17,010 Hau da, 2. 717 00:37:17,010 --> 00:37:18,370 Hau deitzen da aurkitu. 718 00:37:18,370 --> 00:37:23,360 >> Eta, hasiera batean, zabor-balio batzuk ditu benetan dut bat arte gordetzeko, 719 00:37:23,360 --> 00:37:24,450 den 1. 720 00:37:24,450 --> 00:37:28,320 Ondoren, aurrera joan nintzen, eta aldatu zer izan nahi duzu? 721 00:37:28,320 --> 00:37:29,720 B-ren balioa. 722 00:37:29,720 --> 00:37:31,980 >> Eta, beraz, orain bi izan dut hemen. 723 00:37:31,980 --> 00:37:34,050 Eta, ondoren, b lortzen tmp esan genuen. 724 00:37:34,050 --> 00:37:37,670 Berriz ere, bezala behatu bat egiaztatzeko, hirugarren kodea hemen lerroa besterik ez da hau 725 00:37:37,670 --> 00:37:39,440 ko, b lortzen tmp. 726 00:37:39,440 --> 00:37:41,730 >> Eta, beraz, azkenik, zer egin dezaket? 727 00:37:41,730 --> 00:37:46,800 Aurrera joan nintzen eta aldatzeko b izan behar edozein dela ere tmp balioa da, hau da, 1. 728 00:37:46,800 --> 00:37:48,390 Ez dut ukitu tmp berriro. 729 00:37:48,390 --> 00:37:54,100 >> Baina orain, arazoa lehenbailehen swap gisa itzultzen da, baina ez delako gozamenerako 730 00:37:54,100 --> 00:37:57,540 kopiak balio batzuk, ez dago itzulera ez da aitorpena bertan esplizituki. 731 00:37:57,540 --> 00:37:59,080 Zer da benetan gertatzen ari dena? 732 00:37:59,080 --> 00:38:03,480 Beno, funtsean, memoria honek guztiak - 733 00:38:03,480 --> 00:38:07,410 Ados, itxuraz borragoma gustatzen bakarra garai batean hatz - 734 00:38:07,410 --> 00:38:08,180 besterik gabe desagertu egingo da. 735 00:38:08,180 --> 00:38:10,070 >> Orain errealitatea ez da inora. 736 00:38:10,070 --> 00:38:11,810 Baina ez pentsa dezakezu Orain, galdera-marka gisa. 737 00:38:11,810 --> 00:38:14,040 Da jada ez duelako Erabilera-benetan. 738 00:38:14,040 --> 00:38:17,470 Eta ez da balio horiek egiten. 739 00:38:17,470 --> 00:38:21,920 >> Beraz, bertsio berdearen kasuan kode hau, zer ordez ari 740 00:38:21,920 --> 00:38:24,640 swap pasa? 741 00:38:24,640 --> 00:38:25,770 Beraz, helbideak. 742 00:38:25,770 --> 00:38:28,520 Beraz, x-helbidea eta y helbidea. 743 00:38:28,520 --> 00:38:35,790 Beraz, gero berriro kontatu hau azkena denbora, eta marraztu dut swap berriro, 744 00:38:35,790 --> 00:38:44,620 baina erakusleak, hau izanik, hau b izanik, eta baloia tmp honetan, zer da 745 00:38:44,620 --> 00:38:49,080 benetan batean gordeta berde honetan nire kode bertsio non pasatzen dut 746 00:38:49,080 --> 00:38:52,110 helbideak? 747 00:38:52,110 --> 00:38:53,780 >> X erakuslea bat izango da joan. 748 00:38:53,780 --> 00:38:54,890 Beraz, gezi bat marraztu behar izan nuen. 749 00:38:54,890 --> 00:38:57,310 Baina horrek bera erabiltzen arbitrarioa da aurretik, adibidez. 750 00:38:57,310 --> 00:39:01,220 Demagun hau dela Ox123 antzeko zerbait. 751 00:39:01,220 --> 00:39:04,970 Eta hori Ox127 izango delako lau byte urruntzen da delako bat 752 00:39:04,970 --> 00:39:07,370 int, beraz Ox127. 753 00:39:07,370 --> 00:39:09,080 >> Eta berriro, burujabetza batzuk hartzen ari naiz zenbakiak ere. 754 00:39:09,080 --> 00:39:11,430 Askoz luketen baino txikiagoak dira benetan, eta ordena ezberdinean. 755 00:39:11,430 --> 00:39:14,350 Baina hori nola irudi da gaur egun, desberdinak dira. 756 00:39:14,350 --> 00:39:19,060 >> Baina berdea kode hau erabili dut eta int tmp dut * bat. 757 00:39:19,060 --> 00:39:25,010 * Bide honako hauek egiteko aukera, hartu helbide bat da eta bertara joateko, 758 00:39:25,010 --> 00:39:26,190 den 1. 759 00:39:26,190 --> 00:39:28,480 Eta hori da, orduan aurkitu dut. 760 00:39:28,480 --> 00:39:32,480 Bien bitartean, kodea hurrengo lerroan Hemen, * bat lortzen b, zer esan nahi du? 761 00:39:32,480 --> 00:39:36,910 >> Beno, * bat, beraz, hemen lortzen * b, horrek esan nahi du joaten. 762 00:39:36,910 --> 00:39:39,310 Eta horrek esan nahi du, jarri balioa ez. 763 00:39:39,310 --> 00:39:43,670 Azkenik, kode-lerro azken besterik gabe, esan zuen * b lortzen tmp. 764 00:39:43,670 --> 00:39:48,900 >> Beraz, b dio Hara joan eta gainidatzi batera aurkitu, eta, kasu honetan, va 765 00:39:48,900 --> 00:39:51,520 , izango da berriz ere, 1. 766 00:39:51,520 --> 00:39:54,920 Hori dela eta, berdea bertsioa gure kodea lanak, gorria, berriz, 767 00:39:54,920 --> 00:39:56,010 bertsio inoiz egin. 768 00:39:56,010 --> 00:39:59,020 Hori guztia, besterik gabe, nola behera irakiten memoria kudeatzen da eta non da 769 00:39:59,020 --> 00:40:02,580 benetan al jartzen ordenagailuaren RAM. 770 00:40:02,580 --> 00:40:07,270 Eta, orain, baina gauza bat da pila ari da erabiltzen. 771 00:40:07,270 --> 00:40:09,225 >> Diseinua galdera? 772 00:40:09,225 --> 00:40:10,380 Erakusleak On? 773 00:40:10,380 --> 00:40:11,630 Edo swap on? 774 00:40:11,630 --> 00:40:13,740 775 00:40:13,740 --> 00:40:17,043 >> Ondo da, beraz, malloc, oroitzapen, ez zuen honen antzeko zerbait. 776 00:40:17,043 --> 00:40:18,260 Hau super simple adibide izan zen. 777 00:40:18,260 --> 00:40:20,550 Eta hau bat izan duten Binky sartu gaituzte, nahiz eta nahiko 778 00:40:20,550 --> 00:40:21,870 azkar, klase amaieran. 779 00:40:21,870 --> 00:40:24,480 Dammit, ez dago berriro ere joaten gara. 780 00:40:24,480 --> 00:40:28,780 >> Beraz, gogora ekarri zela adibide dela Binky sartu gaituzte, nahiz eta 781 00:40:28,780 --> 00:40:30,360 zertxobait azkar klase amaieran. 782 00:40:30,360 --> 00:40:33,640 Eta hemen malloc erabiltzen ditugu benetan bigarren aldiz. 783 00:40:33,640 --> 00:40:37,330 Den lehen aldia delako erabiltzen dugu sortzeko nahikoa RAM, esleitu nahikoa RAM 784 00:40:37,330 --> 00:40:38,340 kate bat gordetzeko. 785 00:40:38,340 --> 00:40:40,250 >> Denbora honetan Binky mantendu da erraza da. 786 00:40:40,250 --> 00:40:42,465 Beraz, besterik gabe, gorde nahi da int bat, itxuraz. 787 00:40:42,465 --> 00:40:43,510 Eta hori da, guztiz fina. 788 00:40:43,510 --> 00:40:46,560 Apur bat arraroa da, sinceramente, nahi erabili malloc bat int esleitu. 789 00:40:46,560 --> 00:40:50,650 Baina Nick en claymation puntua izan zen Benetan, besterik gabe, zer kontatu istorioa 790 00:40:50,650 --> 00:40:53,830 gertatzen den edo ez gerta memoria mistreat duzu. 791 00:40:53,830 --> 00:40:56,520 >> Beraz, kasu honetan ere, programa honetan egin gauza batzuk. 792 00:40:56,520 --> 00:41:01,580 Lehenengo kasuan, hemen ere, adierazten erakuslea izeneko x int bat. 793 00:41:01,580 --> 00:41:04,480 Deklaratzen ondoren, erakuslea izeneko y int bat. 794 00:41:04,480 --> 00:41:06,150 X-en gordetzen gero, zer? 795 00:41:06,150 --> 00:41:07,110 Beste norbaitek orain. 796 00:41:07,110 --> 00:41:09,685 Zer lortzen x gordetzea arabera Programa honen hirugarrena? 797 00:41:09,685 --> 00:41:12,380 >> Ikusleak: [INAUDIBLE]. 798 00:41:12,380 --> 00:41:14,130 >> HIZLARIA 1: Beno, ez da nahiko byte, per esan. 799 00:41:14,130 --> 00:41:16,760 Be zehatzagoa orain. 800 00:41:16,760 --> 00:41:18,325 Zer lortzen x gordetzen dira? 801 00:41:18,325 --> 00:41:21,000 802 00:41:21,000 --> 00:41:22,060 Helbide bat, entzun nuen uste dut. 803 00:41:22,060 --> 00:41:23,570 >> Beraz, zer ez malloc itzultzeko? 804 00:41:23,570 --> 00:41:26,030 malloc behaviorally bideratzen memoria zatia da. 805 00:41:26,030 --> 00:41:27,850 Baina, nola ez izateko ematen da? 806 00:41:27,850 --> 00:41:29,460 Zer itzultzen da? 807 00:41:29,460 --> 00:41:32,000 Lehenengo byte helbidea memoria zatia da. 808 00:41:32,000 --> 00:41:33,020 >> Orain, super erraza da. 809 00:41:33,020 --> 00:41:35,380 Byte bakar bat da, eta horrek esan nahi du aurre atzera ari gara da 810 00:41:35,380 --> 00:41:37,300 osoan gauza helbidea. 811 00:41:37,300 --> 00:41:42,070 Beraz, x eta gero gordetzen dira, helbide memoria zati hori. 812 00:41:42,070 --> 00:41:43,400 Bien bitartean, zer gertatzen da gero? 813 00:41:43,400 --> 00:41:45,890 Beraz, benetan, goazen aurrera eta marraztu out benetako azkar honetan. 814 00:41:45,890 --> 00:41:52,490 >> Hala bada baino gehiago gara pantaila eta hemen hau jokatu dugu int * x, int * y 815 00:41:52,490 --> 00:41:53,740 zer egin niretzat da? 816 00:41:53,740 --> 00:41:58,280 Hori besterik ez da egingo aldarrikatzen dut honen antzeko zerbait deitu eta x, y 817 00:41:58,280 --> 00:42:00,010 hau eta deitu y. 818 00:42:00,010 --> 00:42:03,110 Bien bitartean, kodea lerroa da hirugarrena int baten tamaina esleitu egingo, 819 00:42:03,110 --> 00:42:06,160 gertatzen den, izan - Sentitzen dut esan ko aurretik int bat ekarri dut - 820 00:42:06,160 --> 00:42:08,280 lau tipikoa ordenagailu byte. 821 00:42:08,280 --> 00:42:09,720 Gutxienez CS50 tresnarekin. 822 00:42:09,720 --> 00:42:11,490 >> Beraz, hau da, esleitu joan nor da, daki? 823 00:42:11,490 --> 00:42:12,800 Nonbait hemen. 824 00:42:12,800 --> 00:42:15,780 Eta hori zenbait gordetzen helbide idi, nork daki? 825 00:42:15,780 --> 00:42:18,330 Baina zer itzuli iritsi helbide hori da. 826 00:42:18,330 --> 00:42:22,270 Baina hau marraztu dugu pictorially besterik gabe gezi baten ondorioz. 827 00:42:22,270 --> 00:42:25,430 >> Orain, hurrengo lerro * x 42 lortzen. 828 00:42:25,430 --> 00:42:29,400 Zer esan nahi du * x layman en dagokionez esan nahi du? 829 00:42:29,400 --> 00:42:30,040 Just joaten. 830 00:42:30,040 --> 00:42:30,960 Helbide horretara joan. 831 00:42:30,960 --> 00:42:35,900 Edo beste era batera esanda, jarraitu gezi eta 42 jarri ez. 832 00:42:35,900 --> 00:42:38,140 Baina gero zerbait txarra gertatu Binky nahi, ezta? 833 00:42:38,140 --> 00:42:43,950 >> Gogoratzen lerroa bost hemen, * y consigue 13, hain zuzen ere, unlucky zenbakia, 834 00:42:43,950 --> 00:42:44,760 egin Gurekin zer? 835 00:42:44,760 --> 00:42:47,320 Beno, * y bitartez joaten. 836 00:42:47,320 --> 00:42:50,460 Beno, hori ez da ematen balio bat gabe, ezta? 837 00:42:50,460 --> 00:42:54,090 Kodea ez dauka y izateaz ezer egingo. 838 00:42:54,090 --> 00:42:56,120 X genuen ari hasieratu helbide bat. 839 00:42:56,120 --> 00:42:57,640 Baina y izendatu zuten sortu top. 840 00:42:57,640 --> 00:43:00,250 Baina orduan, puntu eta koma, baliorik ez izan zen benetan jarri. 841 00:43:00,250 --> 00:43:02,330 Beraz, arrazoizko da hau deitzeko zabor balio bat. 842 00:43:02,330 --> 00:43:03,430 Nork daki zer ez? 843 00:43:03,430 --> 00:43:07,160 Bit erabiltzen ziren aztarnarik da kodea, aurreko lerro batzuk 844 00:43:07,160 --> 00:43:08,300 nire programa. 845 00:43:08,300 --> 00:43:13,250 >> Hala bada joaten esan dut, hau da, adibidez, Ideia ez dago non gezi hori daukat 846 00:43:13,250 --> 00:43:14,490 amaituko da. 847 00:43:14,490 --> 00:43:17,720 Eta hori egiten duzunean, normalean lortu segmentaziuo hutsegitea bat. 848 00:43:17,720 --> 00:43:22,430 Dereference Nahi izanez gero, beraz, hitz egiten, edo helbide bat ez da joan 849 00:43:22,430 --> 00:43:25,400 benetan zilegizko helbide bat, gauza txarrak gertatuko dira. 850 00:43:25,400 --> 00:43:27,550 >> Eta hori da, zehatz-mehatz zer gertatu zen Binky pentsatzea. 851 00:43:27,550 --> 00:43:31,060 Beraz, gogora ekarri istorioa Nick hori zela hemen kontatzea ideia bera izan zen zer gisa 852 00:43:31,060 --> 00:43:34,050 Ilusioa duen Nik marrazten taula daude klarion. 853 00:43:34,050 --> 00:43:35,960 X eta y dira deklaratu. 854 00:43:35,960 --> 00:43:39,690 >> Ondoren, tamaina baziren dugu int bat eta gordetzen x. 855 00:43:39,690 --> 00:43:42,130 Ondoren, hurrengo lerro genuen * x. 856 00:43:42,130 --> 00:43:46,070 Hau Nick en makila magikoa izan zen dereferencing du. 857 00:43:46,070 --> 00:43:49,780 Jarri 42 memorian azpimarratu x arabera. 858 00:43:49,780 --> 00:43:51,600 >> Baina hau da, non gauza joan horribly okerra da. 859 00:43:51,600 --> 00:43:51,820 Eskuin? 860 00:43:51,820 --> 00:43:53,550 Saiatu dereference y dugu. 861 00:43:53,550 --> 00:43:55,620 Baina y akastunak izan balio, ezta? 862 00:43:55,620 --> 00:43:57,720 >> Beheko aldean, ezker-eskuan gezi duten izkinan, ez da 863 00:43:57,720 --> 00:43:58,950 benetan ezer seinalatuz. 864 00:43:58,950 --> 00:44:01,520 Zer egiten nuen moduko da egin hemen taula gainean. 865 00:44:01,520 --> 00:44:05,900 Beraz, gauza txarrak gertatuko dira, segmentazio errua, edo Binky errua, kasu honetan. 866 00:44:05,900 --> 00:44:10,800 >> Baina orduan dugu konpondu bada x eginez lortzen y istorioa nola aldaketa ez? 867 00:44:10,800 --> 00:44:15,760 Beno, ez dut x y lortzen bada, hori eraginkortasunez esaten dute bera 868 00:44:15,760 --> 00:44:19,235 edozein dela ere, hau da, idi-zerbait da, bera izan da hemen, 869 00:44:19,235 --> 00:44:20,080 Idi-zerbait. 870 00:44:20,080 --> 00:44:22,970 Edo pictorially gezi bat marraztu dugu. 871 00:44:22,970 --> 00:44:25,530 >> Beraz, hemen Binky batera taula gainean, hurrengo lerro batekin 872 00:44:25,530 --> 00:44:28,350 kodea, * y esan nahi du joaten. 873 00:44:28,350 --> 00:44:29,400 Non dago? 874 00:44:29,400 --> 00:44:30,820 Baino gehiago esan nahi du, hemen. 875 00:44:30,820 --> 00:44:36,050 >> 13 eta noiz izango litzateke, eguneratu dugu dakar besterik ez da joan eta 876 00:44:36,050 --> 00:44:39,470 13 idatziz hemen orain. 877 00:44:39,470 --> 00:44:44,130 Beraz, agian, ez dira guztiz Lehen begiratuan erraza. 878 00:44:44,130 --> 00:44:47,740 Baina, eta laburpena berean jargon erabili nahi duten Binky zen hemen erabiliz, beraz, 879 00:44:47,740 --> 00:44:50,485 Lehenengo bi esleitu erakusle da, x eta y, baina ez pointees du. 880 00:44:50,485 --> 00:44:54,750 Pointees eta ez da Oro har, erabiltzen den terminoa. 881 00:44:54,750 --> 00:44:56,120 Baina erabat erakuslea da. 882 00:44:56,120 --> 00:44:59,200 Baina, zer gertatzen ari den adierazi da Binky en nomenklatura ere. 883 00:44:59,200 --> 00:45:01,660 >> Hurrengo lerro hau, noski, int pointee bat bideratzen. 884 00:45:01,660 --> 00:45:04,840 Bat memoria zatia Beraz - zirenak I gainean Eskuineko aldean, ez dago - eta jaurtiketa 885 00:45:04,840 --> 00:45:06,470 x berdin da seinalatu. 886 00:45:06,470 --> 00:45:11,350 Dereferences x 42 honetan gorde nahi memoria dela seinalatuz. 887 00:45:11,350 --> 00:45:13,380 Eta, ondoren, hau da, noski, txarra izan zen. 888 00:45:13,380 --> 00:45:15,600 Y ez baitzen seinalatuz ezer oraindik ere. 889 00:45:15,600 --> 00:45:16,530 Hau konpontzen du. 890 00:45:16,530 --> 00:45:18,240 Beraz, hau da, oraindik ere akatsak programa. 891 00:45:18,240 --> 00:45:21,580 Just delako bidez ari gara putz kode lerro eta esaten line, oi bai, 892 00:45:21,580 --> 00:45:22,690 utzi ez du huts egin. 893 00:45:22,690 --> 00:45:23,420 Hori txarra da. 894 00:45:23,420 --> 00:45:26,790 Odds dira programaren besterik joan abortatzeko guztiz line hartan. 895 00:45:26,790 --> 00:45:30,550 Baina kendu nahi duzu bada izorratu lerroa eta ordeztu da, azken bi 896 00:45:30,550 --> 00:45:32,470 lerroak ez baduzu, esleitu - 897 00:45:32,470 --> 00:45:35,310 erakuslea esleitzeko erabiliz - y ra puntu t x seinalatu. 898 00:45:35,310 --> 00:45:39,280 Eta gero dereference oso seguru modu y. 899 00:45:39,280 --> 00:45:41,520 >> Beraz, ez utzi digu? 900 00:45:41,520 --> 00:45:45,350 Beno, bihurtzen duten kanpaia azpian CS50 liburutegian, erakusleak dira 901 00:45:45,350 --> 00:45:46,320 Erabilitako zehar. 902 00:45:46,320 --> 00:45:48,910 Eta benetan dizugu zuritu hasteko itzuli luze baino lehen geruza. 903 00:45:48,910 --> 00:45:51,740 Baina bihurtzen da, adierazpen bat batzuk ezagutzen ere izan daiteke, 904 00:45:51,740 --> 00:45:54,580 batez ere, erosoagoa, Egia esan, oso ezaguna duten 905 00:45:54,580 --> 00:45:56,390 webgunea, edo pila gainezka, egun hauetan. 906 00:45:56,390 --> 00:45:58,720 >> Baina honetan, egia esan, oso tekniko esanahia. 907 00:45:58,720 --> 00:46:00,160 Orain badakigu zer pila bat da. 908 00:46:00,160 --> 00:46:02,550 Da erretiluak pila bat bezalakoa da jantokia baten barruan. 909 00:46:02,550 --> 00:46:05,140 >> Edo barruan ordenagailuaren du memoria bere markoak horiek 910 00:46:05,140 --> 00:46:06,900 diren funtzioak erabiltzen du. 911 00:46:06,900 --> 00:46:10,760 Beno, bihurtzen da hori delako Oso erraza da ezarpen 912 00:46:10,760 --> 00:46:14,970 memoria eta deiturikoak on fotograma pila, benetan hartu dezakezu kontrola 913 00:46:14,970 --> 00:46:17,050 informatika-sistema bat nahiko erraz. 914 00:46:17,050 --> 00:46:22,180 Sistema bat sartu ahal izango duzu aldatu bada jendea gurekin ez bezala, gure idatzizko kodea 915 00:46:22,180 --> 00:46:23,300 batez ere, ondo. 916 00:46:23,300 --> 00:46:26,670 >> Gu bezala erabiltzen bada zatiak memoria edo erabilera array of - 917 00:46:26,670 --> 00:46:27,810 are gehiago, normalean - 918 00:46:27,810 --> 00:46:31,800 baina batzuetan ahaztu egiaztatzea gure mugak array duzu lukeen bezala 919 00:46:31,800 --> 00:46:38,470 dute, batzuetan zeure burua eta iterated Urrunegi amaieran array bat iragana modu. 920 00:46:38,470 --> 00:46:40,520 Onena kasuan, zure programa agian besterik kraska. 921 00:46:40,520 --> 00:46:42,280 Segmentaziuo hutsegitea, mota lotsa da. 922 00:46:42,280 --> 00:46:45,480 Ez da handia, baina ez da, nahitaez, izugarri txarra. 923 00:46:45,480 --> 00:46:49,480 >> Baina zure programa da, benetan bada, benetako erabiltzaileen ordenagailuetan da abian bada 924 00:46:49,480 --> 00:46:53,070 web orri bat on benetako ausazko pertsona Interneten daude, kolpeak dezazun 925 00:46:53,070 --> 00:46:56,690 jendea bultzatu gauza txarrak zure kodea da Oro har, ez da gauza ona delako 926 00:46:56,690 --> 00:46:59,930 aukera bat hartu behar dela esan nahi du ordenagailuaren kontrola. 927 00:46:59,930 --> 00:47:01,350 Eta hau da, begiratu joan pixka bat críptica. 928 00:47:01,350 --> 00:47:04,570 Baina beldurra nuela pentsatu nuen batera Azken horren adibide hemen. 929 00:47:04,570 --> 00:47:05,650 >> Kodea hemen adibide bat. 930 00:47:05,650 --> 00:47:07,370 Eta ez da ona Wikipedia Artikulu hori ibiltzen bidez 931 00:47:07,370 --> 00:47:08,530 zehatzago hau. 932 00:47:08,530 --> 00:47:13,890 Behean deitzen nagusian daukat foo, 1 argv batean igaroz. 933 00:47:13,890 --> 00:47:15,750 Eta hori besterik ez da, beraz, ahal duzun hori exekutatu programa, eta pasatu 934 00:47:15,750 --> 00:47:17,080 arbitrarioak sarrera bat. 935 00:47:17,080 --> 00:47:20,180 >> Eta gero, foo izendatu sortu top Kate bat onartuz, edo gehiago 936 00:47:20,180 --> 00:47:21,700 hain zuzen ere, char * bat. 937 00:47:21,700 --> 00:47:23,860 Deklaratzen ondoren, karaktere sorta bat. 938 00:47:23,860 --> 00:47:27,130 Deitu buffer bat, oro har, tamaina 12. 939 00:47:27,130 --> 00:47:30,900 Beraz, 12 karakteretan dezakezu doitzeko barruan c izeneko array hori. 940 00:47:30,900 --> 00:47:33,510 >> Eta, ondoren, funtzio berri hau erabiltzen du, hau da, ez da berria, baina zaila 941 00:47:33,510 --> 00:47:34,930 ulertzeko, memoria kopia. 942 00:47:34,930 --> 00:47:39,290 Memorian kopiatzen da barra, eta hori izan zen aldagaiak iraganean n, edozein 943 00:47:39,290 --> 00:47:42,080 Erabiltzaile argv 1 tekleatutako c sartu. 944 00:47:42,080 --> 00:47:43,090 Zenbat byte? 945 00:47:43,090 --> 00:47:44,260 Bar luzera katea. 946 00:47:44,260 --> 00:47:48,380 >> Beraz, beste era batera esanda, erabiltzaileak mota behar izanez gero, h-e-l-l-o Sartu, kate-luzera 947 00:47:48,380 --> 00:47:49,260 kaixo da bost. 948 00:47:49,260 --> 00:47:52,790 Beraz byte horietako bost iritsi da joan array izeneko c, a sartu eta horrek 949 00:47:52,790 --> 00:47:54,110 tamaina 12 da. 950 00:47:54,110 --> 00:47:58,710 Baina zer gertatzen da, erabiltzaileak askoz luzeagoa motak hitza da 13 edo 14 karaktere 951 00:47:58,710 --> 00:48:01,250 karaktere edo 100 karaktere edo gehiago? 952 00:48:01,250 --> 00:48:02,660 >> Nora joan dira? 953 00:48:02,660 --> 00:48:06,090 Beno, marko, eta erretilu jangela-areto pila batean, 954 00:48:06,090 --> 00:48:06,930 joaten ari dute. 955 00:48:06,930 --> 00:48:10,080 Eta besterik ez da berridazten hasteko joan beste gauza hori dagoeneko 956 00:48:10,080 --> 00:48:12,880 pila horretan, gainezka pila, nolabait esateko. 957 00:48:12,880 --> 00:48:14,780 >> Pictorially, beraz, modu honetan pentsatzen. 958 00:48:14,780 --> 00:48:17,970 Hau da, besterik gabe, koloretsua bertsioa Irudian gara marrazten. 959 00:48:17,970 --> 00:48:20,060 Behealdean, esan dezagun, ez da nagusia. 960 00:48:20,060 --> 00:48:24,690 Eta goian, orain ikusten ari zara marko, kolorez kodetuta dago orain, bat 961 00:48:24,690 --> 00:48:26,090 foo izeneko funtzioa. 962 00:48:26,090 --> 00:48:30,170 Baina zer da interesgarria hemen buruz foo da hemen bere markoa da. 963 00:48:30,170 --> 00:48:32,860 Beraz, besterik ez dut atsegin marraztuko baina urdin argia egin zuen. 964 00:48:32,860 --> 00:48:35,220 Eta orain, hau da, non c tarte 0 doa. 965 00:48:35,220 --> 00:48:37,410 Eta hau, non c parentesi da 11 da azkenean joan. 966 00:48:37,410 --> 00:48:39,670 >> Bestela esanda, gertatzen da izango da plaza gisa irudikatzen. 967 00:48:39,670 --> 00:48:42,320 Baina dezazun bada byte plopping behera - edo karakteretan - Amaierara ari dira joan 968 00:48:42,320 --> 00:48:46,070 sortu kokapena 0 modu guztiak sortu 11 delako 0 ordenatuta. 969 00:48:46,070 --> 00:48:49,170 >> Baina non 13an pertsonaia da azkenean joan? 970 00:48:49,170 --> 00:48:50,310 Non dago 14an? 971 00:48:50,310 --> 00:48:52,430 Non 50 pertsonaia da azkenean joan? 972 00:48:52,430 --> 00:48:54,070 >> Behera jarraitzea da joan. 973 00:48:54,070 --> 00:48:57,350 Nahiz eta marraztuko dugu delako pila duen irudi hazi da, 974 00:48:57,350 --> 00:48:59,920 helbideak, bihurtzen da, joan txiki helbideak, txiki 975 00:48:59,920 --> 00:49:01,830 erakusleak, handira helbideak. 976 00:49:01,830 --> 00:49:03,540 Beraz, mantentzen besterik ez da gora eta gora. 977 00:49:03,540 --> 00:49:05,660 >> Hala bada, erabiltzaileak mota kaixo, hori handia. 978 00:49:05,660 --> 00:49:08,650 Bug Ez, ez dago arazorik, guztion seguru. 979 00:49:08,650 --> 00:49:11,940 Baina erabiltzaileak zer egiten zaitugu motak bada deitu adversarial kodea, irudikatzen 980 00:49:11,940 --> 00:49:16,040 oro bezala, atentatua, erasoa, erasoa, erasoa, zer gertatuko da? 981 00:49:16,040 --> 00:49:19,760 >> Beno, sarrera guztiak galtzen duten erabiltzaileak Idatzitako ez da, besterik gabe, lagunarteko batzuk 982 00:49:19,760 --> 00:49:21,540 edo karaktere katea iraingarritzat. 983 00:49:21,540 --> 00:49:24,050 Egia esan, ez da karaktere-sekuentzia bat konpilatu baduzu ere, 984 00:49:24,050 --> 00:49:26,050 da benetan kodea. 985 00:49:26,050 --> 00:49:29,570 Agian kodea da ezabatzen duten guztiak zure disko gogorrean fitxategiak edo zabor-posta bidaltzen 986 00:49:29,570 --> 00:49:30,810 edo horrelako zerbait. 987 00:49:30,810 --> 00:49:35,110 Nabarituko zer hori da gakoa hemen da txarra lasaia lortu zortea bada 988 00:49:35,110 --> 00:49:37,830 gainidatzi memoria zatia gorria - 989 00:49:37,830 --> 00:49:41,080 horrek ez nuen nire irudi marrazteko baina hau Wikipedia argazki hemen - 990 00:49:41,080 --> 00:49:42,890 bere deiturikoak itzulera helbidea. 991 00:49:42,890 --> 00:49:47,470 >> Janaria itzultzen denean, swap itzultzen, nola ordenagailua ez du jakin nahi joan 992 00:49:47,470 --> 00:49:49,790 Hemen gora behera hemen? 993 00:49:49,790 --> 00:49:52,920 Edo segmentu teknologiako sortu batez ere, nola ez trukatzeko batetik joan jakin 994 00:49:52,920 --> 00:49:54,870 kodea - 0 eta 1-en osatzen duten swap - 995 00:49:54,870 --> 00:49:56,020 itzuli nagusiak? 996 00:49:56,020 --> 00:50:00,450 Badago deiturikoak itzulera helbidea da gordetzen duten pila berean marko batean, an 997 00:50:00,450 --> 00:50:02,140 berean kafetegia tray. 998 00:50:02,140 --> 00:50:06,080 >> Hala bada txarra lasaia da clever nahikoa jarri kodea erasoa, erasoa kodea, erasoa 999 00:50:06,080 --> 00:50:07,960 kodea, eta zortea - 1000 00:50:07,960 --> 00:50:11,630 to - askotan trial eta errore bidez gainidatziko dela gorria itzulerako helbidea, 1001 00:50:11,630 --> 00:50:14,360 helbidea eta lehenago oso goian. 1002 00:50:14,360 --> 00:50:16,830 Iragarki 0835C080. 1003 00:50:16,830 --> 00:50:20,650 Honez idatzia atzeraka sortu goian arrazoiak direla eta, agian, ikusiko dugu berriro. 1004 00:50:20,650 --> 00:50:22,050 Honetan zenbaki hori da. 1005 00:50:22,050 --> 00:50:25,790 >> Hala bada txarra lasaia lortzen zortea edo smart nahikoa da gorria gainidatzi 1006 00:50:25,790 --> 00:50:29,480 memoria biluztera helbide batera kodea zuen duela nolabait 1007 00:50:29,480 --> 00:50:34,980 Zure ordenagailuan injektatzen, asmatzeko eta horren kodea da itzuli joan 1008 00:50:34,980 --> 00:50:38,260 bezain laster foo gisa exekutatzen da egin? 1009 00:50:38,260 --> 00:50:39,440 >> Txarra lasaia en kodea. 1010 00:50:39,440 --> 00:50:43,610 Erasoa kode hau, beraz, AAA, berriro ere, agian bidali spam, fitxategi guztiak ezabatuko agian 1011 00:50:43,610 --> 00:50:44,500 zure disko gogorrean. 1012 00:50:44,500 --> 00:50:48,740 Baina horixe da benetan pila bat gainezkatzea da, edo buffer inbaditu, edo bat 1013 00:50:48,740 --> 00:50:51,060 bufferrerako gainezkatzea erasoa. 1014 00:50:51,060 --> 00:50:54,400 >> Eta oso, oso ohikoa da idatzitako programak egun honetan 1015 00:50:54,400 --> 00:50:58,220 C, C + +, eta, nahiz eta beste hizkuntza batzuk. 1016 00:50:58,220 --> 00:51:02,275 Ohar hori scary on egiten zaitugu Txiste batekin amaituko da. 1017 00:51:02,275 --> 00:51:03,230 >> [Barreak] 1018 00:51:03,230 --> 00:51:04,550 >> Ikusi duzu, asteazkenean. 1019 00:51:04,550 --> 00:51:07,920 1020 00:51:07,920 --> 00:51:10,310 Hurrengo CS50 at - 1021 00:51:10,310 --> 00:51:15,920 Beraz, disko lanparak out nago, baina, gaur egun, itxaron, gantz-free esnea, telefono erdia 1022 00:51:15,920 --> 00:51:17,850 liburu bat, laranja zukua edaten duten dut gaur. 1023 00:51:17,850 --> 00:51:20,370 1024 00:51:20,370 --> 00:51:22,780 USB kablea, giltza bat. 1025 00:51:22,780 --> 00:51:24,800 >> [Musika jotzen]