ROB BOWDEN: Hei, olen Rob Bowden, ja puhutaanpa quiz0.
>> Joten, ensimmäinen kysymys.
Tämä on kysymys, jossa sinun piti koodata numero
127 binary sipulit.
Jos halusi, voisit tehdä säännöllisesti muuntaminen
alkaen bi-- tai mistä desimaalin binary.
Mutta se menee todennäköisesti ottaa paljon aikaa.
Tarkoitan, voisit selvittää, että OK, 1 on olemassa, 2 on siellä,
4 on siellä, 8 on siellä.
Helpompi tapa, 127 on 128 miinus yksi.
Että vasemmanpuoleisin lamppu on 128-bittinen.
Joten 127 on oikeastaan ​​vain kaikki muut hehkulamput,
koska se on vasemmanpuoleisin hehkulamppu miinus 1.
Se on siinä, että kysymys.
>> Kysymys yksi.
Joten 3 bittiä voit edustavat 8 erillisiä arvoja.
Miksi sitten on 7 suurin ei-negatiivinen desimaalikokonaisluku voit edustavat?
No, jos voimme vain edustavat 8 erillisiä arvoja,
niin mitä me aiomme olla eli on 0 kautta 7.
0 vie yksi arvoista.
>> Kysymys kaksi.
N bittiä, kuinka monta erillistä arvot voivat edustat?
Niin, jossa on n bittiä, sinulla on 2 mahdolliset arvot kullekin vähän.
Joten meillä on 2 mahdolliset arvot ensimmäinen bitti, 2 mahdollista arvoa
Toisen, 2 mahdollista kolmas.
Ja niin se on 2 kertaa 2 kertaa 2, ja lopulta vastaus on 2 n.
>> Kysymys kolme.
Mitä 0x50 binary?
Niin muista, että heksadesimaaliluvuksi on hyvin suoraviivainen muuntaminen binary.
Joten tässä, meidän täytyy vain katsoa 5 ja 0 itsenäisesti.
Joten mitä 5 binary?
0101, joka on 1-bittinen ja 4-bittinen.
Mikä 0 binary?
Ei hankalaa.
0000.
Joten vain laittaa ne yhteen, ja se on täysi määrä binary.
01010000.
Ja jos halusi voisit lentoonlähdön vasemmanpuoleisin nolla.
Se on merkityksetöntä.
>> Niin sitten vaihtoehtoisesti mikä on 0x50 desimaali?
Jos halusi, voit could-- jos olet mieluummin binary,
voisit ottaa, että binary vastaus ja muuntaa sen osaksi desimaalin.
Tai voisimme vain muistaa että heksadesimaaliluvuksi.
Niin että 0 on 0-sijallaan ja 5 on 16 ensimmäiseen paikkaan.
Joten tässä meillä on 5 kertaa 16 Ensimmäinen, plus 0 kertaa 16 nolla,
on 80.
Ja jos katsoit Otsikon kysymykseen,
se oli CS 80, joka oli eräänlainen vihje vastaus tähän ongelmaan.
>> Kysymys viisi.
Meillä on tässä Scratch kirjoitus, joka on toistaen 4 kertaa maapähkinävoita hyytelöä.
Miten siis nyt koodin että C?
No, meillä on here-- osa lihavoitu on vain osa sinun piti toteuttaa.
Joten meillä on 4 silmukan, joka on silmukoiden 4 kertaa, printf-ing maapähkinävoita hyytelö,
uuden linjan ongelma kysyy.
>> Kysymys kuusi, toinen Scratch ongelma.
Näemme, että olemme ikuisesti silmukan.
Sanomme muuttujan i ja sitten kasvattamalla I 1.
Nyt haluamme tehdä sen C. On useita tapoja olisimme voineet tehdä tämän.
Täällä tapahtui koodaamaan ikuisesti silmukan while (true).
Joten me julistamme muuttujan i, vain kuten meillä oli muuttuja i Scratch.
Julistaa muuttuja i, ja ikuisesti while (true), sanomme muuttujaa i.
Joten printf% i-- tai olisit voinut käyttää% d.
Sanomme, että muuttuja, ja sitten kasvattamaan sitä, i ++.
>> Kysymys seitsemän.
Nyt haluamme tehdä jotain hyvin samankaltaisia Mario piste C ongelma asetettu.
Haluamme tulostaa nämä hashtags, Haluamme julkaista viisi
kolme suorakulmion näiden tiivisteiden.
Joten miten aiomme tehdä?
No, me annamme sinulle koko nippu koodin, ja juuri
tulee täyttää tulostaa verkkoon toiminto.
>> Joten mitä PrintGrid näyttää?
No olet ohi leveys ja korkeus.
Joten meillä on ulompi 4 silmukka, joka on kiehkura
kaikkien rivien tämän grid että haluamme tulostaa.
Sitten meillä on inter-sisäkkäistä 4 silmukan, se tulostamista jokaisessa sarakkeessa.
Joten jokaista riviä, me painamme varten jokainen sarake, yksi tiiviste.
Sitten lopussa rivin me painamme yksi uusi linja mennä seuraavalle riville.
Ja siinä se koko verkkoon.
>> Kysymys kahdeksan.
Toimivat kuten PrintGrid sanotaan on sivuvaikutus, mutta ei paluuta
arvo.
Selitä ero.
Joten tämä riippuu sinusta muistaa mitä sivuvaikutus on.
No, paluu value-- Tiedämme PrintGrid ei
on paluu arvo, koska täällä se sanoo mitätön.
Joten mitään joka palauttaa void ei oikeastaan ​​palaa mitään.
Joten mikä on sivuvaikutus?
No, haittavaikutus on mitään tällaista jatkuu
jälkeen toiminto päät joka ei ollut juuri palannut,
ja se ei ollut vain panoksista.
>> Niinpä esimerkiksi, voisimme muuttaa globaali muuttuja.
Se olisi sivuvaikutus.
Tässä nimenomaisessa tapauksessa, erittäin tärkeä sivuvaikutus
tulostaa näytölle.
Niin, että on sivuvaikutus että PrintGrid on.
Painamme näitä asioita näytön.
Ja voit ajatella että sivuvaikutuksena,
koska se on jotain, joka jatkuu tämän jälkeen toiminto päättyy.
Se on jotain ulkopuolelle Tämän toiminnon, joka lopulta
ollaan muuttamassa, kuvaruudun sisältöä.
>> Kysymys yhdeksän.
Harkitse ohjelman alla, johon rivi numeroita
on lisätty vuoksi keskustelu.
Joten tässä ohjelmassa olemme vain soittamalla GetString, varastointia
Tässä muuttuja s, ja sitten tulostus että muuttuja s.
OK.
Joten miksi linjalla yksi on läsnä.
#include CS50 piste h.
Miksi meidän täytyy #include CS50 piste h?
No me soittamalla GetString toiminto,
ja GetString on määritelty vuonna CS50 kirjastossa.
Joten, jos meillä ei ole #include CS50 piste h,
saisimme että implisiittinen ilmoitus on GetString toiminnon virhe
alkaen kääntäjä.
Joten meidän täytyy sisällyttää library-- Meidän täytyy sisällyttää header-tiedosto,
tai muuten kääntäjä ei tunnustavat, että GetString olemassa.
>> Selittäkää, miksi linja kaksi on läsnä.
Joten standardi io piste h.
Se on täsmälleen sama kuten edellisessä tehtävässä,
paitsi sen sijaan käsittelevät GetString, puhumme printf.
Joten jos emme sano meidän sisällyttää standardin io piste h,
meillä ei pystyisi käyttää printf toiminto,
koska kääntäjä ei tiedä siitä.
>> Why-- mitä merkitystä Tyhjän linjassa neljä?
Joten tässä meillä on int main (void).
Se on vain, että meidän eivät saa mitään komentoriviä
argumentit main.
Muista, että voisimme sanoa int main int argc merkkijono argv suluissa.
Joten tässä me vain sanoa mitätön sanoa me sivuuttavat komentoriviargumentteja.
>> Selitä, suhteen muistia, tarkalleen mitä GetString linjassa kuusi palaa.
GetString on palaamassa lohko muisti, joukko merkkejä.
Se on todella palaamassa osoitin ensimmäisen merkin.
Muista, että merkkijono on char tähden.
Niin n on osoitin ensimmäiseen merkki tahansa merkkijono
että käyttäjä kirjoittaa näppäimistöllä.
Ja että muisti sattuu olemaan malloced, niin että muisti on kasassa.
>> Kysymys 13.
Harkitse ohjelman alla.
Joten kaikki tämä ohjelma tekee on printf-ing 1 jaettuna 10.
Joten kun kootaan ja teloitettiin, tämä ohjelma
lähdöt 0,0, vaikka 1 jaettuna 10 on 0.1.
Joten miksi se 0.0?
No, tämä johtuu siitä, kokonaisluku jako.
Joten 1 on kokonaisluku, 10 on kokonaisluku.
Joten 1 jaettuna 10, kaikki käsitellään kokonaislukuja,
ja C, kun teemme kokonaislukujaolla, me katkaista mitään desimaalipilkun.
Joten 1 jaettuna 10 0, ja sitten me yritämme
tulostaa että float, joten nolla tulostetaan float on 0,0.
Ja siksi saamme 0.0.
>> Harkitse ohjelman alla.
Nyt olemme tulostus 0.1.
Joten ei kokonaislukujaolla, me vain tulostus 0,1,
mutta me tulostaa sen 28 desimaalin tarkkuudella.
Ja saamme tämän 0,1000, koko joukko nollia, 5 5 5, blah blah blah.
Joten kysymys kuuluu, miksi se tulostaa, että sen sijaan, tarkalleen 0,1?
>> Joten syy tässä nyt liukuluku epätäsmällisyys.
Muista, että osakkeiden arvo on vain 32 bittiä.
Voimme siis vain edustaa rajallinen määrä liukulukudataelementtejä arvojen kanssa 32
bittiä.
No siellä on lopulta äärettömän monet liukuluvuiksi,
ja siellä on äärettömän monta kelluva kohta arvoja välillä 0 ja 1,
ja olemme tietysti pystyä edustavat vieläkin enemmän arvoja kuin että.
Joten meidän täytyy tehdä uhrauksia pystyä edustamaan eniten arvoja.
>> Joten arvon kuin 0,1, ilmeisesti emme voi vakuuttaa, että juuri.
Joten sen sijaan, mikä on 0,1 teemme Parasta mitä voimme edustamaan tätä 0.100000 5 5
5.
Ja se on aika lähellä, mutta Saat paljon sovelluksia
sinun tarvitse murehtia liukuluku epätarkkuus,
koska emme vain voi edustaa kaikki kelluvat pistettä tarkalleen.
>> Kysymys 15.
Mieti alla oleva koodi.
Olemme vain tulostus 1 plus 1.
Joten ei ole temppu täällä.
1 plus 1 arvioi 2, ja Sitten olemme tulostuksessa.
Tämä vain tulostaa 2.
>> Kysymys 16.
Nyt olemme tulostus merkki 1 plus merkki 1.
Joten miksi tämä ei tulostaa sama asia?
No merkki 1 plus-merkki 1 merkki 1 on ASCII-arvo 49.
Joten tämä on todellakin nyt 49 plus 49, ja lopulta tämä on menossa painoon 98.
Joten tämä ei tulosta 2.
>> Kysymys 17.
Täytäntöönpanon loppuunsaattaminen Odd alle siten
että funktio palauttaa true, jos n on pariton, ja epätosi, jos n on parillinen.
Tämä on suuri tarkoitus mod toimija.
Joten otamme argumentti n, jos n mod 2 on 1, samoin
se tarkoittaa, että n jaettu 2 oli jäljellä.
Jos n jaettuna 2 oli jäljellä, että tarkoittaa, että n on pariton, niin palaamme totta.
Else palaamme vääriä.
Sinulla on myös voinut tehdä n mod 2 vertaistensa nolla, return false, muuten return true.
>> Harkitse rekursiivinen funktio alla.
Joten jos n on pienempi kuin tai yhtä suuri kuin 1, paluu 1,
muu paluu n kertaa f n miinus 1.
Niin mikä on tämä toiminto?
No, tämä on vain kertoma toiminto.
Tämä on hienosti edustettuna kun n kertoma.
>> Joten kysymys 19 nyt, haluamme otettava tämä rekursiivinen funktio.
Haluamme tehdä iteratiivinen.
Niin miten me sen teemme?
Hyvin henkilöstön ratkaisu, ja taas siellä
useita tapoja olisit voinut tehdä että aloitamme tällä int tuote
on 1.
Ja koko tämän varten silmukka, olemme menossa
voidaan kertomalla tuote lopulta päätyä Monimuuttujakoeajot.
Joten int i = 2, i on pienempi kuin tai yhtä suuri kuin n, i ++.
>> Saatat ihmetellä, miksi i = 2.
No, muista, että täällä meidän on Varmista meidän tukikohta tapauksessa on oikea.
Joten jos n on pienempi kuin tai yhtä suuri kuin 1, me vain palaavat 1.
Joten tänne, aloitamme i = 2.
No jos olisin 1, sitten the-- tai jos n oli 1, sitten silmukkakytkentäjohdotukseen
ei suorita lainkaan.
Ja niin me olisi vain paluu tuote, joka on 1.
Vastaavasti, jos n oli vähempään kuin 1--
jos se olisi 0, negatiivinen 1, whatever-- olisimme vielä palaamassa 1,
joka on juuri rekursiivinen versio on tekemässä.
>> Nyt, jos n on suurempi kuin 1, niin olemme menossa
tehdä ainakin yksi iterointia tämän silmukan.
Joten sanokaamme n on 5, niin olemme aiot tehdä tuote kertaa = 2.
Nyt tuote on 2.
Nyt aiomme tehdä Tuotteiden kertaa yhtä suuri kuin 3.
Nyt se on 6.
Tuotteiden kertaa yhtä kuin 4, nyt se on 24.
Tuotteiden kertaa on 5, nyt se on 120.
Niin sitten lopulta olemme palaamassa 120, mikä on oikein 5 kertoma.
>> Kysymys 20.
Tämä on yksi, jossa sinun täytyy täyttää Tämän taulukon minkään tietyn algoritmin,
mitään, että olemme nähneet, että sopii näihin algoritminen run
kertaa nämä asymptoottinen ajoajat.
Joten mikä on algoritmi, joka on omega 1, mutta iso O n?
Joten ei voi olla äärettömän monia vastauksia täällä.
Yksi että olemme nähneet luultavasti Usein on vain lineaarinen haku.
>> Joten parhaassa tapauksessa skenaario, kohta olemme
HAKU on listan alkuun
ja niin omega 1 vaiheet, Ensiksi meidän tarkistaa,
me vain välittömästi takaisin että löysimme kohteen.
Pahimmassa tapauksessa, Esityslistalla on lopussa,
tai kohde ei ole luettelossa lainkaan.
Joten meidän täytyy etsiä Koko lista, kaikki n
elementtejä, ja siksi se on O, n.
>> Joten nyt se on jotain, joka on sekä omega n log n, ja iso O n log n.
No osuvimmat asia olemme nähneet tässä Lomituslajittelu.
Joten Lomituslajittelu, muistaa, on lopulta Theta
on n log n, jossa theta määritellään jos molemmat omega ja iso O ovat samat.
Molemmat n log n.
>> Mikä on jotain, joka on omega n, ja O n potenssiin?
No, taas siellä useita mahdollisia vastauksia.
Täällä meillä sattuu sanoa Kuplalajittelu.
Lisäyslajittelu toimisi myös täällä.
Muista, että Kuplalajittelu on, että optimointi missä,
jos sinulla on mahdollisuus saada läpi koko lista
tarvitsematta tehdä mitään swap, sitten hyvin,
voimme heti palata, että Luettelo on lajiteltu aluksi.
Joten parhaassa tapauksessa, se on vain omega n.
Jos se ei ole vain kauniisti lajiteltu lista aluksi,
Sitten meillä on O n potenssiin swap.
Ja lopuksi, meillä on valinta Lajittele N potenssiin, sekä omega ja iso O.
>> Kysymys 21.
Mikä kokonaisluvun ylivuoto?
No sekin vastaa aiemmin, meillä on vain äärellisen monta bittiä
edustaa kokonaisluku, joten ehkä 32 bittiä.
Sanotaan meillä on allekirjoitettu kokonaisluku.
Sitten lopulta korkein positiivinen luku voimme edustaa
on 2 31 miinus 1.
Mitä tapahtuu, jos yritämme sitten suurennettava että kokonaisluku?
No, me aiomme mennä 2 31 miinus 1, kaikki alas negatiiviseksi 2
ja 31.
Joten tämä kokonaisluvun ylivuoto on kun pidät inkrementoimalla
ja lopulta et voi saa mitään korkeampaa ja se vain
ylireagoi aina takaisin noin negatiivinen arvo.
>> Entä puskurin ylivuoto?
Joten puskuri overflow-- muistaa, mitä puskuri on.
Se on vain kimpale muistia.
Jotain array on puskuri.
Joten puskurin ylivuoto, kun yrität käyttää muistia
päättymisen jälkeen, että jono.
Joten jos sinulla on taulukon koko 5 ja te
yrität käyttää array kiinnike 5 tai kiinnike 6 tai kannatin 7,
tai mitään muuta kuin loppuun, tai edes mitään
below-- array kiinnike negatiivinen 1-- kaikki nämä ovat puskurin ylivuotoja.
Olet koskettaa muisti huonolla tavalla.
>> Kysymys 23.
Joten tässä yksi tarvitset toteuttaa strlen.
Ja kerromme teille, että voit olettaa s ei voi olla tyhjä,
joten sinun ei tarvitse tehdä mitään tarkistaa null.
Ja on olemassa useita tapoja olisit voinut tehdä tämän.
Täällä me vain ottaa yksinkertainen.
Aloitamme laskuri, n. n on laskemalla, kuinka monta merkkiä on olemassa.
Joten aloitamme 0, ja sitten me kerrata koko listan.
>> Onko s kiinnike 0 vastaa null terminaattori merkki?
Muista etsimme null terminaattori merkki
määrittää, kuinka kauan meidän jono on.
Joka on menossa lopettaa asiaan merkkijono.
Niin on s kiinnike 0 yhdenvertaisen jotta null terminaattori?
Jos se ei ole, niin me tulemme katsokaa s kiinnike 1, s kiinnike 2.
Meidän pitää käynnissä kunnes olemme löytää null terminaattori.
Kun olemme löytäneet sen, sitten n sisällä kokonaispituus merkkijonon,
ja voimme vain palata siihen.
>> Kysymys 24.
Joten tämä on yksi, jossa voit täytyy tehdä kaupan pois.
Niin yksi asia on hyvä yhdessä tavalla, mutta miten se on huono?
Joten tässä, Lomituslajittelu taipumus olla nopeampi kuin Kuplalajittelu.
Sanottuani that-- hyvin, siellä useita vastauksia täällä.
Mutta tärkein on, että Kuplalajittelu on omega N lajitellun luettelon.
>> Muista, että taulukko me juuri nähnyt aiemmin.
Joten kupla lajittelee omega n, parhaassa tapauksessa
on se voinut vain mennä yli luettelon kerran, määrittää
hei tämä asia on jo lajitellaan, ja paluu.
Lomituslajittelu, mitä teet, on omega n log n.
Joten lajitellun luettelon, kupla Lajittele tulee olemaan nopeampi.
>> Nyt entä liittyvät luettelot?
Joten linkitetyn listan voi kasvaa ja kutistua sopimaan yhtä monta alkiota kuin tarvitaan.
Ottaa sanoi that-- niin yleensä suora vertailu
tulee olemaan sidoksissa lista array.
Joten vaikka paneelit voi helposti kasvaa ja kutistua
sopimaan yhtä monta alkiota tarpeen, linkitetty lista
verrattuna array-- array on random access.
Voimme indeksi mihinkään Erityisesti alkiota.
>> Joten linkitetty lista, emme voi vain mennä Fifth Element,
meidän täytyy kulkea alusta kunnes saamme viides elementti.
Ja että menee estää meitä tekemässä jotain binäärihaku.
Puhuminen Binäärihaku, binäärihaku yleensä nopeammin kuin lineaarinen haku.
Ottaa sanoi that-- niin, yksi mahdollinen asia
on, että et voi tehdä binary etsiä liittyvät luettelot,
voit vain tehdä sen paneelit.
Mutta todennäköisesti vielä tärkeämpää, et voi tehdä binäärihaku
on array, joka ei lajitella.
Etukäteen ehkä lajitella array, ja vasta sitten voidaan
teet Binäärihaku.
Joten jos asia ei ole lajitellut aluksi,
sitten lineaarinen haku saattaa onnistua nopeammin.
>> Kysymys 27.
Mieti siis ohjelman alla, mikä tulee olemaan seuraava dia.
Ja tämä on yksi missä olemme menossa haluavat nimenomaisesti
arvot eri muuttujien.
Joten katsotaanpa sitä.
>> Joten linjalla yksi.
Olemme int x on 1.
Se on ainoa asia, joka on tapahtunut.
Joten linja yksi, näemme taulukko, että y, a, b, ja tmp ovat kaikki
pimensi.
Niin mikä on x?
No me vain asettaa se vastaa 1.
Ja sitten linjalla kaksi, hyvin, näemme, että y on asetettu 2,
ja pöytä on jo täytetty meille.
Niin x on 1 ja y on 2.
>> Nyt linja kolme, olemme nyt sisällä swap toiminto.
Mitä me kulkea vaihtaa?
Ohitimme ampersand x ja & -merkki y b.
Jos ongelma aikaisemmin totesi, että osoite X
on 0x10, ja osoite y on 0x14.
Niin a ja b ovat yhtä kuin 0x10 ja 0x14, vastaavasti.
>> Nyt rivillä kolme, mitkä ovat x ja y?
No, mikään ei ole muuttunut x: n ja y: tässä vaiheessa.
Vaikka ne ovat sisällä tärkein pinokehys,
ne on vielä sama arvot kuin ennenkin.
Emme ole muuttaneet mitään muistikuvaa.
Niin x on 1, y on 2.
Selvä.
Joten nyt me sanoimme int tmp yhtä suuri tähti.
Joten rivillä neljä, kaikki on sama paitsi TMP.
Emme ole muuttaneet mitään arvoja mitään paitsi TMP.
Asetamme TMP yhtä suuri tähti.
Mikä on tähti?
No, pisteitä X, niin tähti on menossa yhdenvertaisen X, joka on 1.
Joten kaikki on kopioitu alas, ja TMP on asetettu 1.
>> Nyt seuraava rivi.
Star yhtä suuri tähti b.
Joten linja five-- taas hyvin, kaikki on sama kuin mitä tähti on.
Mikä on tähti?
No, me vain sanoi tähti on x.
Joten olemme muuttumassa x yhdenvertaiseen tähti b.
Mikä on tähti b? y. b pistettä y.
Joten tähti b on y.
Joten olemme asettamalla x yhtä kuin y, ja kaikki muu on sama.
Joten näemme seuraavan rivin, että x on nyt 2, ja loput ovat vain kopioidaan alaspäin.
>> Nyt seuraava rivi, tähti b on yhtä kuin TMP.
No, me vain sanoi tähti b on y, joten olemme asettamalla y sama TMP.
Kaikki muu on samaa, niin kaikki menee kopioitu alas.
Olemme asettamalla y yhtä suuri TMP, joka on yksi, ja kaikki muu on sama.
>> Nyt vihdoin, linja seitsemän.
Olemme takaisin päätehtävä.
Olemme sen jälkeen vaihto on valmis.
Olemme menettäneet, b, ja TMP, mutta lopulta me
ole muuttamassa mitään arvoja mitään tässä vaiheessa,
me vain kopioida x ja y alaspäin.
Ja me näemme, että x ja y ovat nyt 2 ja 1 eikä 1 ja 2.
Swap on suoritettu onnistuneesti.
>> Kysymys 28.
Oletetaan, että kohtaat virheilmoitukset
Alla virka-aikana ensi vuonna CA tai TF.
Neuvoa miten korjata kukin näistä virheistä.
Niin määrittelemätön viittaus GetString.
Miksi voisi näet tämän?
No, jos opiskelija käyttää GetString niiden koodin,
ne ovat oikein Hash mukana CS50 dot h sisällyttää CS50 kirjasto.
>> No, mitä he täytyy korjata tämä virhe?
Heidän täytyy tehdä viiva lcs50 osoitteessa komentorivillä kun he kokoamisessa.
Joten jos ne eivät läpäise kalahtaa viiva lcs50, he
aio olla todellinen koodi, joka toteuttaa GetString.
>> Kysymys 29.
Epäsuorasti julistamisesta kirjastofunktion strlen.
No tämä nyt, ne eivät ole tehty asianmukainen hash kuuluu.
Tässä nimenomaisessa tapauksessa, otsikkotiedosto ne täytyy sisällyttää on merkkijono piste h,
ja myös string piste h, nyt student-- nyt kääntäjä
on pääsy julistuksia strlen,
ja se tietää, että koodi käyttää StrLen oikein.
>> Kysymys 30.
Enemmän prosenttia muunnokset kuin tietojen argumentteja.
Niin mitä tämä on?
Muistan hyvin, että nämä prosenttia signs-- miten he liittyvät printf.
Joten Printf voisimme percent-- voisimme tulostaa jotain
kuten prosenttia i kenoviiva n.
Tai voisimme tulostaa kuten prosenttia i, tilaa, prosenttia i, avaruus, prosenttia i.
Joten jokaiselle näistä prosenttia merkkejä, tarvitsemme
siirtää muuttujan lopussa printf.
>> Joten jos sanomme printf paren prosenttia i kenoviiva n lähellä paren,
hyvin, sanomme, että olemme painoon kokonaisluku,
mutta silloin emme läpäise printf kokonaisluvun itse tulostaa.
Joten tässä lisää prosenttia tuloksia kuin tiedot argumentteja?
Se on sanoa, että meillä on läjän prosentteja,
ja meillä ei ole tarpeeksi muuttujia todella täyttää nämä prosentteja.
>> Ja sitten ehdottomasti, sillä kysymys 31, menettänyt lopullisesti 40 tavua yhdessä korttelin.
Joten tämä on Valgrind virhe.
Tämä on selvää, että jossain koodissa,
sinulla on osuudesta, joka on 40 tavua suuria, jotta malloced 40 tavua,
ja et koskaan vapautti sen.
Todennäköisesti sinun tarvitsee vain löytää muistia vuotaa,
ja löytää, jos joudut vapauttaa tämän lohkon muistia.
>> Ja kysymys 32, virheellinen kirjoitus koko 4.
Jälleen tämä on Valgrind virhe.
Tämä ei tarvitse tehdä muistilla vuotoja nyt.
Tämä on suurin likely-- tarkoitan, se on jonkinlainen virheellinen muistin oikeuksia.
Ja todennäköisesti tämä on jonkin verran tavallaan puskurin ylivuoto.
Missä sinulla on joukko, ehkä kokonaisluku array, ja katsotaanpa
sanovat, että se on kooltaan 5, ja te yritä koskettaa array kiinnike 5.
Joten jos yrität kirjoittaa, että arvo, se ei pala muistia
että sinulla todella on pääsy, ja niin olet menossa saada tämän virheen,
sanomalla virheellinen kirjoitus koko 4.
Valgrind aikoo tunnustaa olet yrittää koskettaa muistiin sopimattomasti.
>> Ja se on siinä quiz0.
Olen Rob Bowden, ja tämä on CS50.