[Powered by Google Translate] [Astea 5] [David J. Malan - Harvard Unibertsitatea] [Hau CS50 da. - CS50.TV] CS50, Astea 5. Gaur egun, eta aste honetan, Kernet mundua pixka bat aurkezten dugu Problema testuinguruan Ezarri 4. Gaur egun, abbreviated hitzaldi bat izango da, hemen ekitaldi berezi bat delako gero. Beraz, peek bat hartu dugu, eta bai ikasle eta guraso alike gaur egun tease horizonte buruzko gauza batzuk. Horien artean, astelehenetik, batzuk gehiago ikaskideekin izango duzu. edX, Harvard eta MIT OpenCourseWare eta gehiago nahi izanez gero, on line ekimen berri, Harvard-en campus on Astelehena, horrek esan nahi du, etorri Astelehena abiarazi izan ahal izango duzu, azken kopuruan, 86.000 osagarriak ikaskideekin duten jarraituz egingo batera CS50 hitzaldiak eta atal eta walkthroughs eta arazo multzo. Eta honen zati gisa, CS50 eta orain CS50x klase irekiera kide bihurtu ahal izango duzu. Horren zati gisa, konturatzen ez dagoela upsides batzuk izango baita. Hau egiteko prest, ikasle gehiegizko kopurua, nahikoa da esan nahi, nahiz eta 108 TFS eta CAk dugu, ez da nahiko ikasle-irakasle ratioa onena hit dugu behin 80.000 ikasle. Ez ari gara kalifikatzean hainbeste arazo eskuz ezartzen joan, beraz, aste honetan sartu arazoa multzoa CS50 Check izango da, den tresnari komando-line izango aparatuaren barruan eguneratu behin geroago, asteburu honetan jasoko duzu. Komando bat, check50, exekutatu zure pset kabuz ahal izango duzu, eta berehalako feedback jasoko duzu zure programa ez da zuzena edo okerra dugun emandako hainbat diseinu zehaztapenak arabera. Hori arazo multzo zehaztapena. CS50x ikaskideekin egingo baita. Arazoa Set 4 guztiak Kernet buruz da, eta pset hau izan zen benetan real-bizitza stuff batzuk inspiratu Horren bidez, eskola graduondoko I interned dut pixka bat Middlesex County District Attorney bulegoan, auzitegi-lana egiten beren beruna auzitegiko ikertzailea. Zer da hau? Eurokoa da, uste dut aste batzuk iraganeko aipatu dudan bezala, Meza Estatuko Polizia edo beste litzateke etorriko, jaregin off zuten disko gogorretan eta CDak eta disketeak eta antzeko gauzak, eta ondoren Kernet bulegoan helburua zen ezagutzeko ez ote zen edo ez zen nolabaiteko frogak. Berezia Investigations Unitateak izan zen, beraz, zuri-lepoko krimena izan zen. Troubling delituak ordenatu, ezer euskarri digitala nolabaiteko zerikusia izan zen. Bihurtzen da, ez da jende asko idatzi email bat esaten, "nuen". Beraz, sarritan, auzitegiko bilaketak horiek ez aktibatu askoz fruta hori guztia, baina batzuetan, pertsona horiek e-posta idatzi litzateke. Beraz, batzuetan, ahaleginak saritu ziren. Baina eramango auzitegi pset hau izango pset4 dugu grafikoak pixka bat sartuz. Seguru aski gauza horiek emandako JPEGs, GIFs, eta antzeko egun hauetan. Baina horri buruz uste izanez gero, irudi bat, askoz Rob aurpegia bezala, puntu edo pixel-sekuentzia bat bezala prestatua izan da. Rob aurpegia kasuan, ez da kolore-mota guztiak, eta banan-banako puntuak, bestela pixel bezala ezagutzen hasi ginen, behin sartu txikiagotzeko hasi ginen Baina mundu errazteko dugu pixka bat, eta besterik ez esan hori hemen da Rob zuri-beltza eta, zuri-beltza eta adierazteko, bakarrik erabili ahal izango dugu bitarrik. Bitarra erabili behar badugu, 1 edo 0, irudi hori bera adierazi ahal izango dugu Rob bit patroi hau irribarrez aurpegia. 11000011 zuria, zuria, beltza, beltza, beltza, beltza, zuria, zuria adierazten du. Eta, beraz, ez da jauzi bat erraldoia, ondoren, argazki koloretsua buruz hitz egiten hasteko, litzaidake Facebook on ikusi edo kamera digital bat hartu gauzak. Baina, zalantzarik gabe, orduan, kolore, bit gehiago behar duzu. Eta argazkiak munduan oso ohikoa da, ez 1-bit kolorea erabiltzeko, hau iradokitzen du, baina 24-bit kolorea, non lortu benetan milioika kolore. Beraz, kasua denean handitutako Rob begi, koloretsua aukera desberdinak milioika edozein zenbaki izan zen. Beraz, hau aurkezten dugu Arazoa Set 4 Bisita gidatua, eta baita, gaur izango da, 3:30 ohiko 2:30 ordez delako Ostirala hitzaldia hemen. Baina bideo ohikoa den bezala bihar online izango da. Ere dugu sartzeko beste fitxategi-formatua. Hau da, nahita ekarri beldurra bilatzeko lehen, baina C struct dokumentazioa batzuk. Microsoft urte bihurtzen da duela lagundu zabaltzea formatu hau izeneko bitmap file formatua, bmp, eta hori izan zen super simple, koloretsua grafiko fitxategi-formatua izan zen denbora luzez erabiltzen da, eta, batzuetan, oraindik mahaigain on wallpapers. Behar dela uste duzu bada, Windows XP eta gogor mendietan, eta zerua urdin, izan zen, normalean, bmp edo bitmap irudi bat. Bitmap Gurekin fun dute pixka bat, konplexutasun delako. Ez nahiko 0 s eta 1s sare hau bezain sinplea da. Horren ordez, fitxategi baten Irteeran goiburu bat bezala gauzak duzu. Beraz, beste era batera esanda, barruan. Bmp fitxategia 0 s eta 1s sorta oso bat da, baina badira osagarriak 0 s eta 1s han. Eta bihurtzen da zer esan ziurrenik urte hartu dugu ematen doc edo. xls edo. mp3, fitxategi formatu mp4, edozein fitxategi-formatu Oraindik ezagutzen - zer esan nahi du nahiz eta fitxategi formatu bat izan nahi du, egunaren bukaeran fitxategi horiek guztiak Aski 0 s eta 1s delako erabiltzen dugu. 0 s eta agian ere, eta 1s ASCII bidez ABC edo antzekoak, baina egunaren amaieran, oraindik 0 s eta 1s, besterik gabe. Beraz, gizakiak besterik ez, noizean behin, erabaki berri bat fitxategi-formatua asmatu non zer bit ereduak benetan esan nahi homologatuko dute. Eta hemen, kasu honetan, folks duten bitmap fitxategi-formatua diseinatu esan zuen, eta bitmap file byte lehen, 0 desplazamendu han adierazten da, dago zenbait cryptically izeneko aldagaia izeneko bfType izango da, file bitmap mota dago, file bitmap mota da. Infer errenkadan bigarren desplazamendu 2, multzoko 2 byte, agian dezakezu 0 s eta 1s eredu hori adierazten du zer? Zerbait tamaina. Eta doa hortik. Beraz, Problem Set 4, gauza horiek batzuetan zehar egingo ibili. Ez dugu, azkenean, horiek guztiak buruz zaintzen. Baina interesgarria byte 54 inguruan hasten da: rgbtBlue, Green, eta Red. Duzun inoiz bada entzun akronimoa RGB - gorria, berdea, urdina erreferentzia bat da bihurtzen da, ostadarraren kolore guztiak margotzen dezakezu gorria eta urdina eta berdea konbinazio batzuk. Eta, hain zuzen ere, gelan gurasoek lehen proiektore batzuk gogora ekarri ditzake. Gaur egun, ikusi besterik ez duzu bat distiratsua irteten lentearen baten argia, baina eguneko lens gorria, urdina lentea, eta lente berdea izan duzu, eta elkarrekin zuzendutako pantaila bat dute eta koloretsua irudi bat osatu du. Eta askotan, erdiko eskola eta goi eskola lente horiek izango litzateke inoiz beraz apur bat askew, eta, beraz, bikoitzak edo hirukoitzak irudiak ikusteko moduko zinen. Baina ideia izan zen. Gorria eta berdea eta argi urdina irudi bat pintura izan duzu. Eta printzipio hori bera da ordenagailuak erabiltzen da. Beraz, erronka eta, ondoren, arazo artean Set 4 dira zenbait gauza bat izango da. Benetan irudi bat tamainaz aldatu, 0 s eta 1s eredu bat hartu, irudikatu 0 s eta 1s zatien egitura bat zer hau atsegin dute. eta, ondoren, irudikatu nola pixel errepikatzeko - gorri, blues, berde barruan beraz, irudi bat itxura hau, hasieran, hau atsegin zitekeen begiratu ordez ondoren. Beste erronka artean duzula entregatu egingo auzitegiko irudi bat ere izango kamera digital bat benetako fitxategi bat. Eta kamera bat da, Bazen behin, izan ziren argazki sorta osoa. Arazoa da ezabatu ustekabean edo irudia hondatuta dago nolabait. Bad kamera digital gauzak gertatuko. Eta, beraz, azkar kopiatu dugu txartela off 0 s eta 1s gorde horiek guztiak fitxategi bat handi batean, eta eta gero entregatu dugu duzu Arazoa Ezarri 4 beraz, C programa bat idatzi dezakezu JPEGs horiek guztiak berreskuratzeko, haien. Eta JPEGs hori bihurtzen da, nahiz eta pixka bat ari dira fitxategi formatu konplexu aurpegia irribarretsu hemen baino askoz ere konplexuagoa dute bihurtzen da JPEG bakoitza 0 s eta 1s berean eredu batekin hasten da. Beraz erabiliz, azken finean, bitartean loop bat edo begizta edo antzekoak, auzitegiko irudi honetan 0 s guztiak eta 1s baino gehiago dezakezu batetik bestera joateko, eta arazo multzo zehaztapen definitzen berezia eredu hori ikusten duzun aldi bakoitzean, bere gain hartzen hemen da, probabilitatea oso altua, JPEG baten hasiera. Eta ahalik eta azkarren aurkitzen berean eredua byte kopurua batzuk edo kilobyteko edo megabyte geroago, bere gain hartzen hemen bigarren JPEG bat da, photo hartu ondoren lehen dut. Fitxategi hori irakurtzeko stop me, berri bat idazten hasteko, eta zure programaren irteera pset4 adina 50 JPEGs izango da. Eta ez bada 50 JPEGs, begizta apur bat behar duzu. JPEGs kopurua infinitua bat izanez gero, begizta infinitu bat behar duzu. Beraz, hori ere oso ohikoa kasu bat izango da. Beraz, horizonte. Quiz 0 atzean, nire e-posta bakoitzeko konturatzen beti folks Biak pozik daudela, 0 neutral, eta inguruan triste quiz denbora sort. Eta mesedez ez iristea, me, burua TF Zamyla, zure TF, edo Eus-ko badakizula gauzak nola joan eztabaidatu nahi izanez gero. Beraz, gurasoek txunditzea hemen, gelan, zer CS50 liburutegia da? [Barreak] Good job. Zer da CS50 liburutegia? Bai. >> [Ikasleak] pre-idatzizko kodea multzoa da [inaudible] Ongi, ona da. Kode multzo pre-idatzitako dugu langile bat idatzi du, eskaintzen dizugu, komun funtzionalitateren bat eskaintzen du, Stuff get me kate bat bezala, me int - hemen agertzen diren funtzio guztiak. Gaur egun aurrera, prestakuntza-gurpil hauek benetan hartu off hasten gara. Kentzeko kate bat hasiko gara, abisuaren sinonimo besterik ez zen zer benetako datu-mota? >> [Ikasle baino gehiago] Char *. Char *. Gurasoentzat, [egiten whooshing soinua izan zen ziurrenik. Hori ona da. Char * hasteko pantaila gehiago ikus kendu egiten ditugu kate bat bezala gure hiztegia dugu, gutxienez, benetan kodea idatziz dator. Era berean, funtzio hauetako batzuk erabiliz askoz uzteko dugu gure programa sofistikatuagoa lortzeko delako. Baino besterik ez idazteko gonbita keinukariak bertan eseri duten programak, Erabiltzaileak zerbait idatzi zain, zure inputak jasoko duzu beste nonbait from. Esate baterako, lortuko duzu, disko gogor lokalean bit serie bat. Ordez duzu etorkizunean sare konexio bat, web batzuk nonbait. Hargatik back geruza hau zuritu lehen aldiz, eta tira CS50 Appliance eta izeneko fitxategi hau cs50.h, daramat # asteak barne, baina dezagun benetan zer honen barruan. Blue fitxategia goiko besterik ez da iruzkinak sorta osoa: bermerik informazioa eta lizentzien. Paradigma ohikoa software baten sort software asko egun hauetan zer open source deitzen zaio delako, Horrek esan nahi du norbaitek idatzi du kodea eta libreki eskuragarri egin da ez bakarrik erabiltzeko, eta exekutatu, baina benetan irakurri eta aldatu eta zure lana integratzeko. Beraz, zer egin duzun, open source software, oso txikia bada ere. Azken iruzkinak behera joan I bada, baina, hasteko, gauza batzuk gehiago ezagutzen ikusteko dugu. Oharra top hemen cs50.h fitxategia goiburu fitxategiak sorta osoa. Horietako gehienak, ez dugu ikusi aurretik, baina ezagutzen bat da. Horietako zein, ikusi dugu, labur-labur bada ere, eta, beraz, orain arte? >> [Ikasleak] Standard liburutegia. Bai, liburutegi estandarrak. stdlib.h du malloc. Behin, memoria dinamikoa esleipena buruz hitz egiten hasi ginen, itzuli gara datorren astean ere, hasi fitxategi hori barne. Bihurtzen da boolearra eta egia eta gezurra ez dela benetan existitzen C per se besteak beste, fitxategi hau ez dago hemen. Asteak dugu stdbool.h barne bool, egia edo gezurra. nozioa erabili ahal izango duzu Hau gabe, faltsua da ordenatzeko eta int bat erabili nahi duzun eta arbitrarioki bere gain hartzen 0 faltsua da, eta 1, egia da. Behera joan gara bada gehiago nahi izanez gero, hona hemen gure kate baten definizioa da. Bihurtzen da, Nik esan baino lehen, non star hau da, ez du benetan axola. Espazioa ere izan dezakezu inguruan. Dugu seihilekoa dira sustatzen du, halaber, argi utzi izar mota egin behar du, baina konturatzen bezala, ez da apur bat eta ohikoagoa bada, jarri behar da, baina funtzionalki, gauza bera da. Baina orain irakurri dugu behera gehiago nahi izanez gero, dezagun GetInt begirada bat erabiltzen dugulako hori, agian, lehen baino lehen beste edozer seihileko honetan. Hemen da GetInt. Hau zer da? >> [Ikasleak] prototipoa. >> Prototipo bat besterik ez da. Askotan, jarri dugu prototipoak gure gailurretan c fitxategiak baina era berean jarri prototipoak goiburu-fitxategiak, h fitxategiak, hau hemen bezala beraz, funtzio batzuk idatzi nahi duzun beste pertsona batzuk erabili ahal izateko, hau da, hain zuzen ere CS50 liburutegia kasuan, ezartzea, ez bakarrik zure funtzioak cs50.c antzeko zerbait, jarri ere, prototipoen fitxategi hori ez goialdean baina Goiburu-fitxategi baten goialdean. Ondoren, Goiburu-fitxategi hori da, bere lagun eta lankideen artean, besteak beste, #, besteak beste, beren kodea propioa. Beraz, denbora honetan guztian, duzun prototipoak horiek guztiak barne, eraginkortasunez zure koadernoan goialdean baina honen bidez, besteak beste mekanismo funtsean kopiak eta pastak fitxategi hau zeure sartu. Hona hemen dokumentazio nahiko zehatza da. Pretty askoz ere dugu hartu eman GetInt int bat lortzen, baina badaude izkinan kasu batzuetan izarrekin bihurtzen da. Zer erabiltzaileari zenbaki bat bide handiegia mota bada, quintillion besterik ezin int baten barruan sartzen? Zer espero den portaera da? Egokiena, aurreikus da. Beraz, kasu honetan, benetan irakurri fina inprimatu lerroa ezin bada irakurri, itzultzen INT_MAX honetan benetan ikusiko dituzu. Inoiz ez dugu honi buruz hitz egin zuen, baina bere kapitalizazioa oinarrituta, zer da ziurrenik? [Ikasleak] konstante bat. >> Konstante bat da. Berezi batzuk etengabeko ziurrenik goiburu fitxategiak horietako bat izendatu da goragotik fitxategia, eta INT_MAX da seguruenik zerbait gutxi gorabehera 2 milioi bezala, behar dugu, nolabait, zerbait adierazten duelako ideia izatea oker joan da, bai, dugu, gure eskura 4 milioi zenbakiak: -2 milioi 2 milioi, eman edo hartu. Beno, zer da programazio ohikoa besterik ez da zenbaki horiek lapurtu duzu, agian 0, agian 2 milioi, agian -2 milioi Zure daitezkeen balioak bat gastatzen duzu, beraz, mundu dezakezu konprometitzea zerbait oker joaten bada, hau big super balioa itzuliko da. Baina ez baduzu nahi, erabiltzaileak 234 atsegin críptica zerbait idazten ..., benetan big zenbaki bat. Orokortu duzu konstante bat jo ordez. Beraz, benetan, zinen anal bada aste batzuk iraganeko edozein momentutan GetInt izeneko izan behar duzu baldintza batekin egin erabiltzaile motaren bada INT_MAX egiaztapena edo, zehatzago esanda, egin GetInt bueltan INT_MAX izanez gero, ez delako, benetan esan nahi du, ez dute idatzi. Zerbait gaizki joan da, kasu honetan. Beraz, hau da, oro har, Sentinel balioa, besterik gabe, esan nahi berezi gisa ezaguna. Dezagun orain. C fitxategia bihurtu. C fitxategia aparatuaren existitu denbora pixka bat. Eta, hain zuzen ere, aparatuaren du pre-konpilatu gauza deitzen dugun objektu-kode sartu, baina ez bakarrik ez dizu axola non sistema ezagutzen duelako da Kasu honetan, non da: tresnari. Dezagun behera joan eta GetInt ikusi nola GetInt izan da lan hori guztia. Hemen, aurretik antzeko iruzkinak egin behar dugu. Dezagun gerturatzeko me kodea zati. Eta zer GetInt dugu honako hau da. Sarrera ez du. Int bat itzultzen ditu, while (true), beraz, nahita begizta infinitua behar dugu, baina zentzuzkoa hautsi dugu hau, nolabait, edo honen barruan itzultzeko. Ikus dezagun nola obra honetan. Erabiliz GetString begizta barruan lehen lerroan honetan, 166 badirudi dugu. Hau da, gaur egun, praktika onak zein egoera pean GetString itzuli delako keyword NULL berezia? >> [Ikasleak] zerbait oker joaten bada. Zerbait oker badago. Eta zer oker joan izan GetString antzeko zerbait deitzen? Bai. >> [Ikasleak] malloc huts egin emateko ints. Bai. Agian malloc huts egin. Somewhere kanpaia azpian, GetString malloc, esleitzen memoria deituz da, ordenagailua dendan pertsonaia guztiak aukera ematen dizu erabiltzaileak sartu teklatu mota. Eta demagun erabiltzaileak denbora librea asko izan, oro har, eta idatzi, esate baterako, 2 milioi ordenagailu baino gehiago karaktereak karaktere baino are RAM ditu. GetString du hori adierazteko gai izan. Nahiz eta super, super izkinan kasu arraroa da, nolabait hau kudeatzeko gai izango da, eta, beraz, GetString ginen itzuliz gero eta irakurri bere dokumentazioa, Izan ere bueltan NULL du. Beraz, gaur egun GetString NULL itzuli huts egiten badu, GetInt da INT_MAX itzuli huts egiten du Sentinel gisa. Hauek dira giza konbentzioak besterik ez dira. Modu bakarra kasu honetan jakin nahi duzun dokumentazioa irakurriz. Dezagun joan int da benetan ahaztuak. Joan I behera bada, apur bat gehiago, line 170, lerro hauen gainean iruzkin bat egin behar dugu. Deklaratzeko 172 int bat, n, eta char, c, eta, ondoren, funtzio berri hau, batzuk, sscanf aurretik zehar estropezuka. Katea scanf dago. Beste era batera esanda, emaidazu kate bat eta informazio interesgarria piezak eskaneatu egingo dut. Zer esan nahi du horrek? Demagun, literalki, 123 I idatzi, teklatua, eta ondoren sakatu Sartu. Zer da 123 datu mota GetString itzultzen da? >> [Ikasleak] String. Jakina, kate bat da, ezta? Kate bat lortu nuen. Beraz, 123 da benetan, aurrekontu-unquote, bukaeran 0 \ 123. Int bat ez dela. Hau ez da zenbaki bat. Itxura zenbaki bat bezalakoa da, baina ez da benetan. Beraz, zer ez GetInt izan nahi duzu? 123 \ 0 - eta, nolabait, zenbaki oso bat benetako bihurtzeko katea ezkerretik eskuinera eskaneatu ditu. Irudikatu izan hau nola egin. Uste itzuliz gero pset2, baina ustez apur bat Caesar eroso edo Vigenere, eta, beraz, kate bat baino gehiago egin ahal izango duzu batetik bestera joateko, karakteretan bihur ditzakezu ints. Baina arraioa, lan asko da. Zergatik ez deitu sscanf bezala, funtzio hori ez duzu? Beraz sscanf argumentu bat espero du izeneko kasu honetan lerroa, kate bat da. Komatxo artean zehaztu ondoren, duzu, oso antzekoak printf, kate honetan zer espero duzu. Eta hemen zer esaten dut zenbaki hamartar eta agian pertsonaia bat izatea espero dut. Eta hori zergatik gertatzen da momentu bat besterik ez dugu. Eta bihurtzen da izendapen hori dela stuff gogorarazten buruz hitz egiten hasi ginen. just Duela aste bat baino gehiago. Zer da eta n eta c Gurekin hemen egiten? >> [Ikasleak] n Helbidea eta c helbidea. Bai. Me It emanez helbidea c n eta helbidea. Zergatik da garrantzitsua? C funtzioak, beti dezakezu itzultzeko balioa edo baliorik ez badakizu. Int, kate bat, mugikor bat, char bat, edozein izanda ere, edo void itzuli ahal izango duzu, itzuli ahal izango duzu, baina gauza bat bakarrik itzuli ahal izango dituzu Gehienez. Baina hemen sscanf me agian int, zenbaki hamartar bat itzuli nahi dugu, eta, gainera, karakterra, eta zergatik dagoen karakterra une batean azaldu dut. Eraginkortasunez nahi duzu sscanf bi gauza itzultzeko, baina hori ez da posible C. Inguruan lan egin ahal izango dituzu bi helbideak pasatuz bezain laster entregatu funtzio bat bi helbide delako, zer egin dezaket funtzio hori haiekin do? >> [Ikasleak] helbide horiek idaztea. Helbide horiek idatz dezake. Star eragiketa erabili ahal izango duzu, eta han joan, helbide horietako bakoitzean. Sort back-ateko mekanismo hau, baina oso ohikoa da aldagaien balioak aldatu Kasu honetan, bi leku bakar bat baino gehiago. Orain konturatu naiz == 1, eta ondoren egiaztapena n itzuli hori ez bada, hain zuzen ere, egia ebaluatzeko. Beraz, zer gertatzen da? Teknikoki, benetan nahi dugu GetInt gertatuko da. Aurrekontu-unquote 123 -, analizatu nahi dugu, nolabait esateko, kate irakurri nahi dugu - eta badirudi zenbaki bat dago, zer sscanf ari gara kontatzea egin bezala aldagai hau jartzen da zenbaki hori - 123 - n me. Beraz, zergatik gero ez dute I actually baita? Zer da pertsonaia bat lortu ere egin dezakezu hemen esaten sscanf rola? [Inaudible ikaslearen erantzuna] >> dezimal benetan lan egin dezake. Dezagun eutsi sakatuta une batez pentsatu. Zer gehiago? [Ikasleak] NULL izan daiteke. >> Good pentsamendu. Karakterea nulua izan daiteke. Egia esan, ez da kasu honetan. Bai. >> [Ikasleak] ASCII. ASCII. Edo are gehiago utzi orokortu me. % C error egiaztapena da. Ez dugu nahi zenbakia pertsonaia bat izan ondoren, baina honekin egin me honako hau da. Bihurtzen da sscanf, n eta c balioak gordetzeko hemen adibide honetan, gainera, zer ere ez da aldagai kopurua itzultzen du balioak sartu sartu Beraz, soilik 123 bada, idatzi eta, ondoren, soilik% d dator, eta n bakarrik lortzen 123 bezalako balio bat gordetzen da, eta ez da ezer lortzen c jartzen. C zabor balioa izaten jarraitzen du, eta, beraz, hitz egiten zabor delako inoiz ez dira balio batzuk hasieratu. Beraz, kasu horretan, sscanf itzultzen 1 erakusleak horietako biztanle I 1 delako, Kasu horretan handia, int dut libre I line beraz, memoria libratzeko GetString hori benetan esleitu, eta, ondoren, n itzuliko naiz, bestela, galdetu al duzu inoiz hori non Saiatu berriro adierazpena datorren dator, hemen. Beraz, bada, ordea, idatzi 123foo I - testu ausazko sekuentzia batzuk - sscanf zenbakia, zenbakia, zenbakia, f ikusteko, eta n 123 jarri behar da; c f jarri eta, ondoren, 2 itzultzeko. Beraz, definizio oinarrizko sscanf portaera, oso modu sinple bat besterik ez dugu erabiltzen ondo, hasiera batean baina egun nahiko simple mekanismo amaieran konplexua - esaten int bat dago, eta, beraz, bada, gauza bakarra aurkitu dut? Eta zuriunez hemen nahita. Irakurri sscanf dokumentazioa baduzu, kontatzen badu zuriunez pieza bat hasieran edo amaieran, sscanf ere, erabiltzaileak aukera emango du, edozein arrazoigatik, sakatu zuriune-barra 123 eta legezko izango da. Ez duzu erabiltzailea Yell baizik zuriune-barra! hasieran edo amaieran, hau da, just a little more user-friendly. Galdera Any gero GetInt? Bai. >> [Ikasleak] Zer besterik ez baduzu char bat jarri? Ona galdera. Zer besterik ez duzu f bezalako char bat izanez gero, idatzi eta sakatu Sartu inoiz 123 idatzi gabe? Zer kode lerro honen portaera izan duela uste al duzu? [Inaudible ikaslearen erantzuna] Bai, eta, beraz, sscanf hau ere izan daiteke, kasu horretan, ez delako, n edo c bete. Horren ordez, itzultzeko 0, horrelako dut, halaber, eszenatoki hori harrapatzeko da balio espero dut nahi 1 delako. Nahi dut soilik, eta gauza bakarra bete behar dira. Ona galdera. Beste batzuk? Guztiak eskubidea. Dezagun hemen funtzio guztietan barrena joan, baina badirudi, agian interes gainerako GetString bihurtzen da delako GetFloat, GetInt, GetDouble, GetLongLong punt guztiak GetString funtzionalitatea asko. Beraz, dezagun nola inplementatu hemen zuen begirada bat. Txiki hau konplexu bat du, baina oinarriak berberak erabiltzen hasi gara astetik buruz hitz egiten. GetString, argumentu ez du hutsunea bakoitzeko hemen eta kate bat itzultzen du, itxuraz I am buffer izeneko kate bat ere geratuko. Egia esan, ez dakit zer den oraindik erabili ahal izateko, baina ikusiko dugu. Default 0 edukiera itxura. Ez nahiko ziur non hau da, ez ziur zer n da erabili behar den oraindik, baina orain pixka bat gehiago interesgarria da lortzean. 243 line, int, c aldarrikatzen dugu. Hau da ergelak xehetasun sort. Karaktereen A 8 bit da, eta 8 bit zenbat balio ezberdinak gordetzeko? >> [Ikasleak] 256. >> 256. Arazoa da, nahi duzun 256 desberdinak ASCII karaktereak, ez dira izan nahi izanez gero uste itzuliz gero, eta hau ez da zerbait buruz ikasi. Baina uste itzuliz gero ASCII taula handi weeks ago izan genuen, Kasu horretan, 128 edo 256 ASCII karaktereak. 0 s eta 1s sortu eredu guztiak erabili ditugu. Hori arazo bat da nahi duzun errore bat detektatzeko gai izan nahi izanez gero ari zaren dagoeneko 256 balioak erabiliz zure karaktere delako, ez duzu benetan planifikatu aurretik esaten ez duzulako, hau ez da pertsonaia bat egiaztatzeko, hau da mezu batzuk okerrak. Beraz, zer du hurrengo balio handiena, antzeko zerbait int bat erabiltzen dute, bit, 32 crazy zenbaki bat behar duzu, 4 milioi daitezkeen balioak beraz, besterik gabe, ahal izango duzu, azkenean, funtsean, 257 horiek erabiliz, 1 errore bat gisa esanahi berezia du. Beraz, ikus dezagun nola obra honetan. 246 line, hau da, berriz, loop handia izan dut, hori fgetc deituz, f esanahia, eta, beraz, getc, eta, ondoren, stdin. Bihurtzen da, hau da, teklatuaren sarrera irakurri esaten modu zehatzago. Standard sarrerako bide teklatua, irteera estandarrean esan nahi du pantaila, eta errorea, pset4 ikusi dugu, pantaila esan nahi du baina pantailaren zati berezi bat da, beraz, eta ez da irteera benetako conflated inprimatzeko asmoa duzula. Baina hori etorkizunean. Beraz fgetc besterik ez teklatua pertsonaia bat irakurri eta gorde non esan nahi du? Biltegiratu c. Eta, ondoren, egiaztatu - Boolean juntagailuak batzuk erabiliz besterik ez dut hemen egiaztatu du ez dela berdina \ n, eta, beraz, erabiltzaileak sakatu Sartu, puntu horretan gelditu nahi dugu, Begizta amaituko da, eta konstante berezia EOF begiratu ere nahi dugu, badakizu edo asmatzen, zer ez stand da? >> [Ikasleak] fitxategi amaiera. >> Fitxategi amaiera. Hau da, mota zentzugabeko naiz badut teklatua idazten duelako, dago, honetan parte hartzen duten fitxategi hori ez da benetan, baina hori bakarrik erabiltzen du esan nahi epe generikoa ordenatzeko ezer ez bestela giza behatzak etorritakoak. EOF - fitxategi amaieran. Bat alde batera utzita, hit duzun inoiz bada Control D zure teklatuan, ez dute oraindik nahi duzun hit duzun Control C - D Control bidaltzen izeneko EOF konstante berezia. Beraz, gaur egun besterik ez dugu batzuk memoria esleipena dinamiko. Beraz, (n + 1> edukiera). Orain n azaldu dut. N besterik ez da, zenbat byte dira Bufferreko uneko kate ari zaren gaur egun eraikitzeko erabiltzaileak. Duzu zure buffer pertsonaiak bada baino bufferraren edukiera, intuitiboki zer ondoren egin behar dugu esleitu edukiera gehiago. Beraz, baino gehiago gaingabetuak aritmetika hemen batzuk eta funtzio honetan bakarrik zentratu hemen noa. Badakizu zer malloc da, edo, gutxienez, oro har, ezagunak dira. Hartu idazketa ez asmatzeko. >> [Ikasleak] gehitzen memoria. Ez da nahiko memoria gehituz. Memoria honela reallocates da. Katearen amaieran gela dizu memoria hori baino gehiago da oraindik bada jatorriz ematen du, baino gero, memoria hori gehiago lortuko duzu. Beraz, mantendu dezakezu katea karaktere jarriz back Itzuli atzera. Baina hori ez bada kasua itxaron duzu luzeegia delako eta ausazko zerbait got memoria plopped dago baina ez dago aparteko memoria hemen behera, ados. Idazketa heavy jasotzaileen guztiak egiteko, mugitu katea irakurri duzula, beraz, urrun hemendik, jarri hor behera, eta, ondoren, emango dizu gehiago puntu horretan pista. Beraz, eskua olatu bat, utzi zer GetString egiten ari da esaten me buffer txiki bat, agian bakarra karaktere hasita, eta, erabiltzaileari bi pertsonaia motak, GetString idazketa deituz sortu da, eta dio karaktere bat ez zen nahikoa izan, eman dit bi pertsonaia. Ondoren, irakurri Begizta logika bidez, esan nahi da Erabiltzaile 3 karaktere idatzitako; eman me now ez 2 baina 4 karaktere, gero, emadazu 8, ondoren, emadazu, 16 eta 32. Izan ere, naiz dela I aldi bakoitzean edukiera bikoiztu Horregatik, buffer hori ez da, poliki-poliki hazten joan, super azkar hazten joan da. Eta zer da hori abantaila izan daiteke? Zergatik I am bufferraren tamaina bikoiztu nahiz eta erabiltzaileari agian nahikoa teklatua pertsonaia bat extra? [Inaudible ikaslearen erantzuna] >> Zer da hori? >> [Ikasleak] ez daukazu hazten bezala maiz. Hain zuzen ere. Ez daukazu hazten bezala maiz. Eta hori besterik ez duzu mota ari da zure apustuak estaldura-hemen, nahi ez dituzun idazketa asko deitu ohi motela izan delako ideia izanik. Edonoiz memoria sistema eragilearen eskatzen, duzu etorkizuneko arazo multzo bat ikusi bezain laster, denbora pixka bat hartu ohi da. Beraz, denbora-kopurua murriztuz, nahiz eta espazioa alferrik galtzen ari zaren, gauza ona izan ohi da. Baina hemen GetString azken zatia bidez irakurriz gero, eta, berriro ere, lerro bakoitzean bakarra ulertzeko hemen ez da hain garrantzitsua gaur - nabarituko, azkenean deiak malloc berriro eta, zehazki, esleitzen bytes adina katea behar bezala eta, ondoren, botatzen away free gehiegi handi buffer deitzen hain zuzen ere, got bada bikoiztu gehiegi aldiz. Beraz, azken finean, hori nola GetString izan da denbora honetan guztian lanean. Guztiak du karaktere bat irakurri aldi berean, behin eta berriro, eta berriro, eta bere esku dagoen guztia egiten du bere memoria pixka bat gehiago behar da, sistema eragilearen eskatu idazketa telefonora deituz. Edozein galdera? Guztiak eskubidea. Erasoa. Orain erakusleak ulertzen dugu, edo, gutxienez, gero eta gehiago dira erakusleak ezagutzen, kontuan hartu dezagun nola hasten da mundu osoan eta tolesteko nahiko ez baduzu erabiltzaile adversarial aurka defendatzeko, jendea zure sistema sartu hack saiatzen ari da, duten pertsonen erregistroa kodea batzuk circumventing zure software lapurtzen saiatzen ari dira bestela izan liteke dutela sartu idatzi Adibide honetan begirada bat hartu hemen, eta besterik ez C kodea duten funtzio nagusi bat, behealdean funtzioa foo deitzen duen. Eta zer ari da pasatzen foo? [Ikasleen] argumentu soil bat. >> [Malan] argumentu soil bat. Beraz, argv [1], erabiltzaileak komando-lerroan idatzitako lehen hitza esan nahi du a.out edo dena delakoa ondoren programa deitzen da. Goialdean foo char * batean hartzen du, beraz. Baina char * besterik ez da zer? >> [Ikasleak] katea. [Malan] kate bat, eta, beraz, ez dago hemen, beraz, ez da ezer berria. Katea arbitrarioki izeneko bar. Lerro hau hemen, char c [12]; erdi-tekniko English sailkatu, zer lerro hau egiten ari da? [Ikasleak] array bat - >> Array-? >> [Ikasleak] karaktereak. >> Karaktereak. Give me 12 karaktere array bat. Beraz, dei hau buffer bat izatea. Teknikoki izeneko c, baina programazioan buffer bat besterik ez espazioaren sorta bat esan nahi du stuff batzuk sartu jarri ahal izango duzula Gero, azkenik, memcpy ez dugu erabili baino lehen, baina seguruenik dezakezu asmatzeko zer egiten. Memorian kopiatzen da. Zer egiten du? Kopiatzen itxuraz, taberna, bere sarrera, c sartu, baina bakarrik bar luzera. Baina bug bat dago hemen. >> [Ikasleen], sizeof pertsonaia behar duzu. >> Ados. Teknikoki, benetan behar dugu strlen (bar) * sizeof (char)). Hori da zuzena. Baina kasu txarrenean hemen, dezagun arduratuko that's hori - Ongi da. Ondoren, bi bugs. Beraz, sizeof (char)); Dezagun hau pixka bat zabalagoa. Beraz, gaur egun oraindik bug bat, hau da, zer? >> [Inaudible ikaslearen erantzuna] Zer dagoen begiratu? >> [Ikasleak] NULL begiratu. NULL for behar dugu, oro har, gauza txarrak direlako gertatuko egiaztapena zure erakuslea NULL hasi behar duzu amaitzeko leza Hara joan eta ez behar duzu inoiz star operadorea dereferencing NULL joan. Beraz, ona da. Eta zer gehiago ari gara egiten? Logikoa denez, akats bat da hemen ere. [Ikasleak] Begiratu argc da> = 2 bada. Beraz, egiaztatu da argc> = 2 bada. Ongi da, eta, beraz, ez da programa honetan hiru bugs hemen, beraz. Orain ari gara erabiltzaileak benetan argv sartu ezer idatzi egiaztapena [1]. Good. Beraz, zer da hirugarren bug? Bai. >> [Ikasleak] C big nahikoa ez izatea. Good. Eszenatoki bat checked dugu. Inplizituki egiaztaturik ez kopiatu memoria gehiago bar luzera baino gaindituko luke. Beraz, katea idatzi erabiltzaile 10 karaktere luzea, hau da, soilik 10 karaktere esaten kopiatu. Eta hori da ados. Baina zer gertatzen da, erabiltzaileak 20-pertsonaia hitz bat bezala gonbitan hitz batean idatzitako bada? Honek kopia 20 karaktere esaten bar zer sartu? C, bestela gure buffer bezala ezagutzen da, horrek esan nahi du, idatzi besterik ez duzu datuak 8 byte kokapenak zuk ez propioa, eta ez duzu jabea zentzua inoiz ez esleituko horiek. Beraz, hau da, oro har, buffer-gainezkatzea erasoa edo buffer inbaditu erasoa ezagutzen. Eta zentzu eraso bat bada erabiltzaile edo programa zure funtzioa deituz hau egiten maliciously, zer benetan gertatzen da hurrengo izan egia esan, nahiko txarra izango. Beraz, dezagun begirada bat argazki hau hemen. Argazki hau zure memoria pila adierazten du. Gogoratu denbora bakoitzak funtzio bat deitu pilaketan markoa txiki hau lortuko duzu eta, ondoren, beste bat eta, ondoren, beste bat eta beste bat. Eta, horrela, arte, mota dugu abstracted horiek laukizuzenak gisa bai taula gainean edo pantaila hemen. Baina dugu laukizuzenak horietako bat, funtzio foo deitu mapan handiago bada, bihurtzen da, ez dagoela gehiago marko horren barruan pila laukizuzenaren besterik ez x eta y eta a eta b, ez zuen bezala swap buruz hitz egitea baino. Bihurtzen da, behe-mailako xehetasun batzuk, besteak beste, Return Address. Beraz, izarrekin bihurtzen da foo nagusia deiak, nagusiak jakinarazi du foo nagusia helbidea ordenagailuaren memorian zer da bestela delako, ahalik eta azkarren foo exekutatzean, hemen kasu honetan bezala egiten da, behin kizkur giltza itxi iristen foo amaieran, nola demontre foo ez daki non programaren kontrola suposatzen da joan? Bihurtzen da galdera horri erantzuna laukizuzen gorria hemen da. Erakuslea bat adierazten du, eta sortu da ordenagailuaren aldi baterako gordetzeko deiturikoak pila nagusiaren helbidea, beraz, ahalik eta azkarren foo gisa exekutatzean egin da, ordenagailua daki non eta zer ildo nagusia itzuli. Gordetako Frame erakuslea erlazionatzen antzera. Char * bar hemen adierazten du zer? Orain blue segmentu hau hemen foo en markoa da. Zer da bar? Bar foo funtzioa besterik ez da argumentua. Beraz, gaur egun ezagutzen argazkia sort gara berriro at. Gehiago stuff eta oharkabetasunak gehiago pantailan, baina hori argi urdina segmentu besterik ez da zer egin dugu Edukien gainean marrazten swap antzeko zerbait. Hori foo markoa da. Eta gauza bakarra oraintxe bar da, eta hori da parametro hau. Baina zer gehiago behar pila kodea hau hemen arabera? [Ikasleen] char c [12]. >> [Malan] char c [12]. Ere ikusi behar dugu memoria 12 c izeneko aldagai bat esleitu plazetan, eta, hain zuzen ere, hori izan ez dugu pantailan. Oso goian dago c [0], eta, ondoren, diagrama honen egileak ez da traba laukiak marrazten, baina ez dira, hain zuzen ere, 12 bertan beheko eskuineko begiratzen baduzu, c [11], 0-tik zenbatzen badituzu, hala nola byte 12an. Baina hemen arazoa. Zein norabide c gero eta handiagoa da? Ordena top down goialdean hasten bada, eta bertan beheko aldean hazten. Ez du itxura utzi dugu geure burua bezala pista guztietan. Mota margotu dugu geure burua, izkinan, eta c [11] bar, hau da, eskuineko Frame Gordetako erakuslea aurka aurka hau da, Return Helbidea aurka. Gela gehiago ez. Beraz, zer inplikazio gero hondatzeko baduzu eta 20 byte 12 byte buffer batean irakurtzen saiatu behar baduzu? Non dira osagarriak 8 byte joango gara? >> [Ikasleak] Inside - Beste guztia barruan, eta horietatik batzuk super garrantzitsua da. Eta garrantzitsuena, potentzialki, koadro gorri dago, Return Address suposatzen delako bai ustekabean edo 4 byte horiek gainidatzi adversarially helbide horretan erakuslea, eta ez bakarrik zabor baina zenbaki batekin gertatzen den benetako memoria-helbide bat irudikatzeko. Zer inplikazioa da, noski? >> [Ikasleen] Funtzioa beste leku bat itzultzeko. Hain zuzen ere. Foo itzulerak eta hits kizkur giltza dela, programa jarraitu ez nagusira itzultzeko, edozein dela ere helbidea koadro gorri horretan itzuli egingo da. Software circumventing erregistroa kasuan, zer ari den itzuli helbidea normalean lortzen duen funtzioa deitzen da duzun softwarea ondoren ordaindu eta zure izen-emate-kodea sartu? Trikimailu ordenagailua ordenatzeko dezakezu hemen ez joan sartu, baizik eta hemen. Edo Oraindik benetan clever, aurkariarekiko bat benetan idatzi teklatua, esate baterako, ez da benetako hitza, 20 karaktere ez, baina suposatu zuen edo zuen benetan mota ordezkatzen dituzten zenbait karaktere kodea. Eta ez da C kode bat izan behar da, benetan pertsonaiak izango ordezkatzen dituzten bitar makina-kodea, 0 s eta 1s. Baina demagun clever nahikoa horretarako ari dira, nolabait gonbita GetString zerbait da, funtsean, konpilatu kodea itsatsi, eta azken 4 bytes gainidatzi bueltan helbide hori. Eta zer helbidea sarrera hori ez do? Laukizuzen gorria bufferraren lehenengo byte helbidea gordetzen da benetan. Beraz, benetan clever izan behar duzu, eta pertsona txarra trial eta akats asko dago out, baina irudikatu bada nola big buffer hala nola, sarrerako byte azken ematen duten programa gertatuko zure buffer Irteeran helbidea baliokidea izan behar du, hau egin ahal izango duzu. Esaten dugu normalean kaixo eta \ 0 bada, zer da bufferraren. Baina gara clever bada eta buffer hori bete dugu zer oro deitu dugu erasoa kodea AAA, eraso, eraso, eraso, hau da, zerbait zerbait txarra du, zer gertatzen ari zaren benetan clever bada, hau egin dezakezu. 80, C0, 35, 08 - Hemen gorria kutxa zenbaki-sekuentzia da. Iragarki hori, eta zenbaki hori da hemen datorrenean. Alderantzizko ordenan, baina batzuk denbora beste gehiago. Oharra bueltan helbide hau que ha sido nahita aldatu helbide bera hemen, ez nagusiaren helbidea. Beraz, bada, txarra lasaia da super smart, zuen artean, erasoa kodea duten zerbait erabiltzailearen fitxategi guztiak ezabatu edo kopiatu pasahitzak edo erabiltzaile-kontu bat sortu ahal izango dut, gero, saioa hasi ezer guztiak. Eta hori bai arriskua eta C. boterea Memoria sarrera delako erakusleak bidez eta, beraz, ahal izango duzu ezer idatzi nahi duzun ordenagailu bat memoria, ordenagailu bat ezer egin nahi duzun egin dezakezu besterik gabe by ondoren inguruan salto egin du bere memoria espazio propioa barruan. Eta, beraz, egun honetan, programa hainbeste eta hainbeste webgune diren arriskutsua irakiten behera pertsonek hau aprobetxatuz. Eta hori super erasoa sofistikatu bat bezala dirudi, baina ez da beti bide horretatik hasteko. Errealitatea da, zer txarra pertsona normalean ez dela, ote den, komando-lerro bat programa edo GUI programa bat edo web orri bat, hasteko besterik ez duzu zentzugabekeria eskainiz. Idatzi bilaketa eremuan eta sakatu Sartu sartu hitz bat benetan handia duzu, eta web kraskatzen bada ikusteko itxaron behar duzun edo programa errore-mezu batzuk manifestuak ikusteko itxaron behar duzun txarra lasaia zortea izanez gero, eta crazy sarrera batzuk eman duzulako programa da, eta horrek esan nahi du, programatzailea ez aurrea zure portaera txarra kraskatzen, horrek esan nahi du, ziur aski duzu, ahalegin nahikoa, nahikoa trial eta akats daki nola erasoa zehatzagoa Soldata. Beraz, askoz ere segurtasun zati bat ez da bakarrik eraso horiek saihesteko guztiz baizik eta haiek detektatzeko eta benetan erregistroak begira eta zer input crazy zure webgunean idatzitako pertsonak ikusten dute, zein bilaketa-terminoak zure web tekleatutako buffer batzuk gainezka itxaropenak. Eta hau guztiak irakiten behera zer oinarriak sinpleak array bat da eta zer ez memoria esleitu eta erabili esan nahi du. Orduan ere da hau. Dezagun, besterik gabe begirada disko gogor baten barruan berriro ere. Aste bat edo bi ago from gogoratzen duzu fitxategiak arrastatu recycle bin edo trash, zer gertatzen da? >> [Ikasleak] Ezer ez. >> Absolutely ezer, ezta? Azkenean, diskoan leku exekutatzen duzun, baxua Windows edo Mac OS zuretzat fitxategiak ezabatuz hasiko da. Baina arrastatu duzun zerbait badago, hori ez da segurua guztietan. Guztiak zure gelakide edo lagun edo familiako kide egin klik bikoitza egin eta, voila, ez da sketchy fitxategi guztiak ezabatu saiatu duzula. Gurekin gehienak, gutxienez, jakin behar duzu eskuineko botoia edo egin klik kontrola eta hutsik zakarrontzi edo horrelako zerbait. Baina orduan ere ez da nahiko egin trikimailu zer gertatzen den fitxategia zure disko gogorrean duzulako Word dokumentu batzuk edo JPEG batzuk adierazten du, eta hau da zure disko gogorrean adierazten du, eta demagun hau hemen sliver fitxategi hori adierazten du, eta 0 s eta 1s osoa sorta bat osatzen dute. Zer gertatzen da soilik ez, arrastatu fitxategi hori zakarrontzira bota edo bin birziklatu baina ere hustu? Ezer agintzea. Ez da deus. Orain ezer ez da taula hau forma apur zerbait gertatzen delako. Beraz, ordenagailu bat memoria mota batzuk datu-basea edo taulak barruan funtsean fitxategiak zutabe bat 'izenak eta fitxategiak zutabe bat' kokapena non hau kokapena 123, ausazko zenbaki bat izan daiteke. Kokapena 123 x.jpeg eta antzeko zerbait izan genezake. Zer gertatzen da orduan, hustu benetan zure trash? Doan kanpoan. Baina zer ez irteteko 0 s eta 1s da. Beraz, zer da ondoren pset4 konexio? Beno, pset4, besterik ez dugu nahi gabe delako ezabatu compact flash txartela zuela argazki horiek guztiak, edo, besterik gabe, delako zorte txarra izan zen hondatuta ez du esan nahi 0 s eta 1s ez dira oraindik ez. Agian horietako batzuk galdu egiten dira zerbait got hondatuta dagoelako Zentzu 0 s batzuk izan zen eta 1s 1s bihurtu zen 0 s. Bad gauza,, buggy software edo hardware akastuna delako gerta daiteke. Baina bit horietako askok, agian, nahiz eta horien% 100 dira, oraindik ere ez dago. Besterik ez da ordenagailua edo kamera ez daki non JPEG1 hasi eta non JPEG2 hasi. Baina baduzu, programatzailea, adituentzat apur, non JPEGs diren jakin edo zer itxura dute, beraz, 0 s eta 1s eta esan JPEG, JPEG aztertu ahal izango duzu, programa bat idatzi dezakezu funtsean bat besterik ez edo begizta bitartean bakoitzak fitxategi horiek berreskuratzen. Ikasgaia da, beraz, segurtasunez zure fitxategiak ezabatzerakoan hasteko hau saihesteko guztira nahi izanez gero. Bai. [Ikasleak] Zergatik dio zure ordenagailuan memoria gehiago baino egin duzula? Have memoria gehiago baino zenuen - >> [ikasleak] memoria gehiago. Oh. Ona galdera. Beraz, zergatik ondoren, trash hustu ondoren, zure ordenagailuan ez esango dizu duzula leku libre baino zenuen? Hitz batean, etzanda delako. Gehiago teknikoki, ez leku gehiago esan duzulako beste gauza batzuk jarri ahal izango duzu non fitxategi hori behin. Baina horrek ez du esan nahi bit kanpoan egingo dira, eta horrek ez du esan nahi bit ari 0 s guztiak aldatu egin dira, esate baterako, zure babeserako. Beraz, ordea, duzu segurtasunez ezabatzeko izanez gero fitxategi edo fisikoki suntsitu telefonoa, benetan batzuetan inguruan modu bakarra da. , Beraz, zergatik ez scary erdi-ohar horretan utzi dugu, eta astelehena, ikusiko dugu. [Txalo] [CS50.TV]