1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 ROB Bowden: Bok, ja sam Rob Bowden, i razgovarajmo o quiz0. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> Dakle, prvo pitanje. 5 00:00:14,545 --> 00:00:17,750 To je pitanje u kojoj što je potrebno da kod broja 6 00:00:17,750 --> 00:00:21,270 127 u binarnom žarulje. 7 00:00:21,270 --> 00:00:23,550 Ako ste htjeli, mogli ste obaviti redovitu pretvorbe 8 00:00:23,550 --> 00:00:25,950 od bi-- ili, od decimale do binarni. 9 00:00:25,950 --> 00:00:28,300 Ali to vjerojatno događa uzeti puno vremena. 10 00:00:28,300 --> 00:00:31,750 Mislim, mogao shvatiti da je, U redu, 1 je tamo, 2 tamo, 11 00:00:31,750 --> 00:00:33,650 4 je tamo, 8 je tamo. 12 00:00:33,650 --> 00:00:39,280 Lakši način, 127 128 minus jedan. 13 00:00:39,280 --> 00:00:42,013 To lijevom žarulja je 128-bitni. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 Dakle 127 stvarno baš sve od ostalih žarulja, 16 00:00:47,860 --> 00:00:51,420 budući da je lijevom žarulja minus 1. 17 00:00:51,420 --> 00:00:52,800 To je to za to pitanje. 18 00:00:52,800 --> 00:00:54,060 >> Pitanje jedno. 19 00:00:54,060 --> 00:00:56,710 Tako je s 3 bita možete predstavlja 8 različitih vrijednosti. 20 00:00:56,710 --> 00:01:01,000 Zašto, dakle, 7 najvećih ne-negativni decimale broj možete predstavlja? 21 00:01:01,000 --> 00:01:04,050 Pa, ako mi samo možemo predstavlja 8 različitih vrijednosti, 22 00:01:04,050 --> 00:01:07,430 onda ono što ćemo biti što predstavlja 0 do 7. 23 00:01:07,430 --> 00:01:08,745 0 zauzima jednu od vrijednosti. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> Pitanje dva. 26 00:01:11,190 --> 00:01:14,610 S n bitova, koliko različita Vrijednosti se predstavljate? 27 00:01:14,610 --> 00:01:19,080 Dakle, s n bitova, imate 2 Moguće vrijednosti za svaki zalogaj. 28 00:01:19,080 --> 00:01:22,300 Dakle, imamo 2 moguće vrijednosti za Prva bitna, 2 moguće vrijednosti 29 00:01:22,300 --> 00:01:24,450 za sekundu, 2 moguće za trećinu. 30 00:01:24,450 --> 00:01:28,730 I tako to 2 puta 2 puta 2, i konačnici odgovor je 2 do n. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> Pitanje tri. 33 00:01:31,100 --> 00:01:33,450 Što je 0x50 u binarnom? 34 00:01:33,450 --> 00:01:39,490 Pa sjetite se da heksadecimalni ima vrlo jednostavno pretvaranje u binarnom. 35 00:01:39,490 --> 00:01:43,180 Pa evo, samo trebamo gledati na 5 i 0 samostalno. 36 00:01:43,180 --> 00:01:45,110 Dakle, što je 5 u binarnom? 37 00:01:45,110 --> 00:01:48,400 0101, to je 1 bitni i 4 bita. 38 00:01:48,400 --> 00:01:49,900 Što je 0 u binarnom? 39 00:01:49,900 --> 00:01:50,520 Nije zahtjevno. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 Dakle, samo ih staviti zajedno, i to je puna broj u binarnom. 42 00:01:54,970 --> 00:01:57,640 01010000. 43 00:01:57,640 --> 00:02:00,439 A ako ste htjeli ste mogli skinu tu krajnjem lijevom nuli. 44 00:02:00,439 --> 00:02:01,105 To je nebitno. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> Dakle alternativno, ono što je 0x50 u decimale? 47 00:02:05,733 --> 00:02:08,649 Ako ste htjeli, što could-- ako ste udobnije s binarnom, 48 00:02:08,649 --> 00:02:11,340 možete poduzeti da binarni odgovor i pretvoriti to u decimale. 49 00:02:11,340 --> 00:02:13,870 Ili smo samo mogli sjetiti da heksadecimalni. 50 00:02:13,870 --> 00:02:21,140 Tako da je 0 u 0-og mjesta, a 5 u 16 na prvom mjestu. 51 00:02:21,140 --> 00:02:25,990 Pa evo, imamo 5 puta 16 na Prvo, plus 0 puta 16 na nulu, 52 00:02:25,990 --> 00:02:27,520 je 80. 53 00:02:27,520 --> 00:02:29,710 A ako ste pogledali Naslov na pitanje, 54 00:02:29,710 --> 00:02:32,920 to je bio CS 80, što je vrsta upućuju na odgovor na ovaj problem. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> Pitanje pet. 57 00:02:35,420 --> 00:02:40,320 Imamo tu Scratch skriptu, što je ponavlja 4 puta kikiriki maslac mliječ. 58 00:02:40,320 --> 00:02:42,800 Pa kako ćemo sada kôd koji u C? 59 00:02:42,800 --> 00:02:47,730 Pa, mi here-- imaju ulogu u bold je jedini dio koji je morao provesti. 60 00:02:47,730 --> 00:02:51,950 Dakle, imamo 4 petlje koji je petlje 4 puta, printf-ing maslac od kikirikija mliječ, 61 00:02:51,950 --> 00:02:53,910 s novom linijom kao problem traži. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> Pitanje šest, drugi ispočetka problema. 64 00:02:57,490 --> 00:03:00,210 Vidimo da smo u zauvijek petlji. 65 00:03:00,210 --> 00:03:05,000 Mi tvrdimo varijablu ja A onda sam povećavati za 1. 66 00:03:05,000 --> 00:03:09,580 Sada želimo to učiniti u C. Postoje više načina bismo mogli su to učinili. 67 00:03:09,580 --> 00:03:12,840 Ovdje mi se dogodilo da kod zauvijek petlje kao vrijeme (pravog). 68 00:03:12,840 --> 00:03:16,600 Tako smo proglasiti varijable i, jednostavno kao što smo imali promjenjivu sam se ispočetka. 69 00:03:16,600 --> 00:03:21,950 Proglasiti varijablu ja, i zauvijek dok je (istina), možemo reći varijablu sam. 70 00:03:21,950 --> 00:03:25,260 Pa printf% i-- ili ste mogli ste koristili% d. 71 00:03:25,260 --> 00:03:27,985 Kažemo da je varijabla i zatim ga povećavati, i ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> Pitanje sedam. 74 00:03:30,830 --> 00:03:35,560 Sada želimo napraviti nešto vrlo slično Mario dot c od problema postaviti jednu. 75 00:03:35,560 --> 00:03:39,110 Želimo ispisati ove izraze s oznakom #, želimo ispisati pet 76 00:03:39,110 --> 00:03:40,700 po tri pravokutnika tih hashes. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 Pa kako ćemo to učiniti? 79 00:03:43,162 --> 00:03:45,370 Pa, mi vam dati cijeli hrpa koda, a vi samo 80 00:03:45,370 --> 00:03:47,560 moraju ispuniti u funkciji ispisa mrežu. 81 00:03:47,560 --> 00:03:49,540 >> Pa što ne PrintGrid izgledati? 82 00:03:49,540 --> 00:03:51,480 Pa ti si prošlost širina i visina. 83 00:03:51,480 --> 00:03:53,520 Dakle, imamo vanjsko 4 petlje, koja je petlje 84 00:03:53,520 --> 00:03:57,650 nad svim redovima ovo Rešetka da želimo ispisati. 85 00:03:57,650 --> 00:04:01,250 Onda imamo među ugniježđenu 4 petlju, to je tisak tijekom svakog stupca. 86 00:04:01,250 --> 00:04:06,210 Dakle, za svaki red, mi ispisati za svaki stupac, jedna mljeveno meso. 87 00:04:06,210 --> 00:04:10,045 Onda na kraju reda smo ispisali Jedan novi redak da ide u sljedeći redak. 88 00:04:10,045 --> 00:04:11,420 I to je to za cijelu mrežu. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> Pitanje osam. 91 00:04:13,675 --> 00:04:17,170 Funkcija kao što PrintGrid je rekao da ima nuspojava, ali ne i povratak 92 00:04:17,170 --> 00:04:17,670 vrijednost. 93 00:04:17,670 --> 00:04:19,209 Objasnite razliku. 94 00:04:19,209 --> 00:04:23,080 Dakle, to se oslanja na koju sjećanja ono nuspojava je. 95 00:04:23,080 --> 00:04:25,180 Pa, povratak value-- znamo PrintGrid ne 96 00:04:25,180 --> 00:04:28,180 ima povratnu vrijednost, budući Ovdje se kaže nevažeće. 97 00:04:28,180 --> 00:04:31,150 Dakle, sve što se vraća void zapravo ne vrati ništa. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 Dakle, što je nuspojava? 100 00:04:33,620 --> 00:04:36,620 Pa, nuspojava je sve što vrsta i dalje postoji 101 00:04:36,620 --> 00:04:39,500 nakon funkcija krajevima koji nije bio samo vratio, 102 00:04:39,500 --> 00:04:41,340 i to je bio ne samo od ulaza. 103 00:04:41,340 --> 00:04:44,970 >> Tako, na primjer, mogli bismo promijeniti globalnu varijablu. 104 00:04:44,970 --> 00:04:46,590 To će biti nuspojava. 105 00:04:46,590 --> 00:04:49,000 U ovom konkretnom slučaju, vrlo važna nuspojava 106 00:04:49,000 --> 00:04:51,070 ispisuje na zaslon. 107 00:04:51,070 --> 00:04:53,110 Tako da je nuspojava da PrintGrid ima. 108 00:04:53,110 --> 00:04:54,980 Tiskamo ove stvari na zaslonu. 109 00:04:54,980 --> 00:04:56,370 A možete misliti da kao nuspojava, 110 00:04:56,370 --> 00:04:58,690 jer to je nešto što ustraje nakon što je ova funkcija završava. 111 00:04:58,690 --> 00:05:01,481 To je nešto izvan dosega ove funkcije koje u konačnici 112 00:05:01,481 --> 00:05:03,380 se mijenja, Sadržaj zaslona. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> Pitanje devet. 115 00:05:05,839 --> 00:05:07,880 Razmislite program u nastavku, na koje brojeve redaka 116 00:05:07,880 --> 00:05:09,740 su dodani za radi rasprave. 117 00:05:09,740 --> 00:05:13,480 Tako je u ovom programu smo samo nazivajući GetString, pohranjivanja 118 00:05:13,480 --> 00:05:16,220 u ovom promjenjivom s, a zatim ispis tu varijablu s. 119 00:05:16,220 --> 00:05:16,720 U redu. 120 00:05:16,720 --> 00:05:19,090 Dakle objasniti zašto linija je jedna prisutna. 121 00:05:19,090 --> 00:05:20,920 #include cs50 točka h. 122 00:05:20,920 --> 00:05:23,820 Zašto trebamo #include cs50 točkica h? 123 00:05:23,820 --> 00:05:26,180 Pa mi smo zovete GetString funkciju, 124 00:05:26,180 --> 00:05:28,840 i GetString definiran u cs50 knjižnici. 125 00:05:28,840 --> 00:05:31,600 Dakle, ako nismo imali #include cs50 točka h, 126 00:05:31,600 --> 00:05:35,760 bismo dobili tu implicitnu izjavu od GetString funkcije pogreške 127 00:05:35,760 --> 00:05:36,840 iz prevodilac. 128 00:05:36,840 --> 00:05:40,110 Dakle, moramo uključiti library-- moramo uključiti zaglavlje datoteke, 129 00:05:40,110 --> 00:05:42,870 Inače prevodilac neće priznati da GetString postoji. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> Objasnite zašto je prisutna dva retka. 132 00:05:46,140 --> 00:05:47,890 Dakle standardni io točka h. 133 00:05:47,890 --> 00:05:50,430 To je točno isti kao i prethodne problema, 134 00:05:50,430 --> 00:05:53,310 osim umjesto da se bave GetString, govorimo o printf. 135 00:05:53,310 --> 00:05:56,654 Dakle, ako mi nije rekao nam je potrebno uključiti standardnu ​​IO točkica h, 136 00:05:56,654 --> 00:05:58,820 onda ne bismo mogli koristiti funkcije printf, 137 00:05:58,820 --> 00:06:00,653 jer prevodilac ne bi znali o tome. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- koje je značenje od poništiti u skladu četiri? 140 00:06:05,260 --> 00:06:08,010 Dakle, ovdje imamo int glavni (prazninu). 141 00:06:08,010 --> 00:06:10,600 To samo govori da smo ne uzimajući bilo koji naredbenog retka 142 00:06:10,600 --> 00:06:12,280 Argumenti za glavni. 143 00:06:12,280 --> 00:06:17,390 Sjetite se da bismo mogli reći int Glavni int argc niz argv zagrade. 144 00:06:17,390 --> 00:06:20,400 Dakle, ovdje ćemo samo reći da se praznina kažemo ignoriraju argumente naredbenog retka. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> Objasnite, s obzirom na memoriju, točno ono GetString u skladu šest vraća. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString se vraća blok memorije, niz znakova. 149 00:06:31,640 --> 00:06:34,870 To je stvarno povratka pokazivač na prvi znak. 150 00:06:34,870 --> 00:06:37,170 Ne zaboravite da je niz char zvijezda. 151 00:06:37,170 --> 00:06:41,360 Dakle, s je pointer na prvi lik u bilo struna 152 00:06:41,360 --> 00:06:43,510 da je korisnik unio na tipkovnici. 153 00:06:43,510 --> 00:06:47,070 I to se događa memorija se malloced, tako da je memorija u gomili. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> Pitanje 13. 156 00:06:50,450 --> 00:06:51,960 Razmislite program u nastavku. 157 00:06:51,960 --> 00:06:55,579 Dakle, sve je to program radi je printf-ing 1 podijeljen s 10. 158 00:06:55,579 --> 00:06:57,370 Dakle, kada sastaviti i izvršen, ovaj program 159 00:06:57,370 --> 00:07:01,170 izlazi 0.0, iako 1 podijeljeno s 10 je 0,1. 160 00:07:01,170 --> 00:07:02,970 Pa zašto je to 0.0? 161 00:07:02,970 --> 00:07:05,510 Pa, to je zato što cijelog broja podjele. 162 00:07:05,510 --> 00:07:08,580 Pa je cijeli broj 1, 10 je cijeli broj. 163 00:07:08,580 --> 00:07:11,980 Dakle 1 podijeljen s 10, svega tretira kao brojeva, 164 00:07:11,980 --> 00:07:16,380 i C, kada radimo cijeli broj podjela, smo izrezati bilo decimalne točke. 165 00:07:16,380 --> 00:07:19,590 Dakle 1 podijeljeno s 10 je 0, a onda pokušavamo 166 00:07:19,590 --> 00:07:24,410 ispisati da kao plovak, tako nula tiskana kao float je 0.0. 167 00:07:24,410 --> 00:07:27,400 I to je razlog zašto smo dobili 0.0. 168 00:07:27,400 --> 00:07:28,940 >> Razmislite program u nastavku. 169 00:07:28,940 --> 00:07:31,280 Sada smo ispisa 0.1. 170 00:07:31,280 --> 00:07:34,280 Dakle, nema cijeli broj podjela, mi samo tiskanje 0,1, 171 00:07:34,280 --> 00:07:37,100 ali smo ga ispisujete 28 decimalnih mjesta. 172 00:07:37,100 --> 00:07:41,810 I što smo dobili ovu 0,1000, cijela hrpa nula, 5 5 5, bla bla bla. 173 00:07:41,810 --> 00:07:45,495 Dakle, pitanje je zašto to radi ispisati da je, umjesto da točno 0.1? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> Dakle, razlog je ovdje sada pomičnim zarezom nepreciznost. 176 00:07:49,640 --> 00:07:53,410 Ne zaboravite da plutaju je samo 32 bita. 177 00:07:53,410 --> 00:07:57,540 Dakle, možemo samo predstavlja konačan broj od pomičnim zarezom vrijednosti s tim 32 178 00:07:57,540 --> 00:07:58,560 bita. 179 00:07:58,560 --> 00:08:01,760 Pa postoji konačnici beskonačno mnogi pomičnim zarezom vrijednosti, 180 00:08:01,760 --> 00:08:04,940 a tu je beskonačno mnogo pluta točka u vrijednosti između 0 i 1, 181 00:08:04,940 --> 00:08:07,860 a mi smo očito u stanju predstavlja još više vrijednosti nego to. 182 00:08:07,860 --> 00:08:13,230 Dakle, moramo napraviti žrtve biti u mogućnosti da predstavljaju većinu vrijednosti. 183 00:08:13,230 --> 00:08:16,960 >> Dakle, kao što je vrijednost 0,1, očito ne možemo predstavljati da je točno. 184 00:08:16,960 --> 00:08:22,500 Dakle, umjesto što predstavlja 0,1 mi najbolje što može predstavljati ovaj 0.100000 5 5 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 I to je prilično blizu, ali za puno aplikacija 187 00:08:26,306 --> 00:08:28,430 morate brinuti o pomičnim zarezom nepreciznost, 188 00:08:28,430 --> 00:08:30,930 jer mi jednostavno ne može predstavljati Svi plutajuće točke točno. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> Pitanje 15. 191 00:08:33,380 --> 00:08:34,679 Razmislite kod ispod. 192 00:08:34,679 --> 00:08:36,630 Mi samo ispisivanje 1 plus 1. 193 00:08:36,630 --> 00:08:38,289 Dakle, ne postoji trik ovdje. 194 00:08:38,289 --> 00:08:41,780 1 i 1 do 2 procjenjuje i onda smo tiskanje to. 195 00:08:41,780 --> 00:08:42,789 To samo ispisuje 2. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> Pitanje 16. 198 00:08:44,700 --> 00:08:49,450 Sada smo ispis karakter 1 plus 1 znak. 199 00:08:49,450 --> 00:08:52,110 Pa zašto to ne ispisati istu stvar? 200 00:08:52,110 --> 00:08:57,680 Pa lik 1 plus znak 1, 1 lik ima ASCII vrijednost 49. 201 00:08:57,680 --> 00:09:04,840 Dakle, ovo je stvarno kaže 49 plus 49, a u konačnici to će ispisati 98. 202 00:09:04,840 --> 00:09:06,130 Dakle, to ne ispisuje 2. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> Pitanje 17. 205 00:09:09,271 --> 00:09:11,520 Ispunite provedbu odd dolje tako 206 00:09:11,520 --> 00:09:14,615 da funkcija vraća vrijedi ako n je neparan i lažna ako je n je još. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 To je velika svrha za mod operatora. 209 00:09:19,330 --> 00:09:24,530 Dakle, uzmemo našu argument n, ako je n mod 2 jednako 1, te 210 00:09:24,530 --> 00:09:28,030 to znači da je n podijeljeni od 2 imao ostatak. 211 00:09:28,030 --> 00:09:33,270 Ako n podijeljen 2 imao ostatak, koji znači da je n neparan, pa smo se vratili istinito. 212 00:09:33,270 --> 00:09:34,910 Inače smo se vratili lažna. 213 00:09:34,910 --> 00:09:39,070 Također se može učiniti n mod 2 jednako nula, return false, drugi povratak istina. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> Razmislite rekurzivne funkcije u nastavku. 216 00:09:43,640 --> 00:09:46,920 Dakle, ako je n manji od ili jednaki 1, povratak 1, 217 00:09:46,920 --> 00:09:50,430 drugi povratak n puta f n minus 1. 218 00:09:50,430 --> 00:09:52,556 Pa što je to funkcija? 219 00:09:52,556 --> 00:09:54,305 Pa, to je samo faktorijalni funkcija. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 To je lijepo zastupljena kao n faktorijalnim. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> Dakle, pitanje je sada 19, želimo iskoristiti ovu rekurzivni funkciju. 224 00:10:02,310 --> 00:10:04,530 Želimo da bude iterativan. 225 00:10:04,530 --> 00:10:05,874 Pa kako ćemo to učiniti? 226 00:10:05,874 --> 00:10:07,790 Pa za osoblje rješenje, i opet postoji 227 00:10:07,790 --> 00:10:11,090 više načina mogli ste učinili da počnemo s ovim proizvodom int 228 00:10:11,090 --> 00:10:11,812 jednak 1. 229 00:10:11,812 --> 00:10:13,520 I tijekom ove za petlju, idemo 230 00:10:13,520 --> 00:10:17,590 se množenjem proizvod u konačnici završiti s punim faktorijalnim. 231 00:10:17,590 --> 00:10:21,870 Tako je za int i iznosi 2, ja se manji od ili jednak N, i ++. 232 00:10:21,870 --> 00:10:24,130 >> Možda se pitate zašto sam jednak 2. 233 00:10:24,130 --> 00:10:28,380 Pa, sjetite se da se ovdje moramo pobrinite naš osnovni scenarij je ispravan. 234 00:10:28,380 --> 00:10:32,180 Dakle, ako je n manji ili jednak na 1, mi samo vraća 1. 235 00:10:32,180 --> 00:10:34,830 Dakle ovdje ćemo početi na sam jednak 2. 236 00:10:34,830 --> 00:10:39,090 Pa ako sam bila 1, a zatim the-- ili ako je n su 1, zatim za petlju 237 00:10:39,090 --> 00:10:40,600 neće izvršiti na sve. 238 00:10:40,600 --> 00:10:43,190 I tako bismo samo Povratak proizvod, koji je 1. 239 00:10:43,190 --> 00:10:45,920 Slično tome, ako su n ništa manje od 1-- 240 00:10:45,920 --> 00:10:49,290 ako su 0, negativna 1, whatever-- bismo uvijek se vraća 1, 241 00:10:49,290 --> 00:10:52,260 što je upravo ono što rekurzivna verzija radi. 242 00:10:52,260 --> 00:10:54,660 >> Sada, ako je n veći od 1, onda ćemo 243 00:10:54,660 --> 00:10:56,550 napraviti barem jednu iteracija te petlje. 244 00:10:56,550 --> 00:11:00,630 Pa recimo da je n 5, onda smo uraditi puta proizvoda iznosi 2. 245 00:11:00,630 --> 00:11:02,165 Dakle, sada je proizvod 2. 246 00:11:02,165 --> 00:11:04,040 Sada idemo raditi puta proizvoda iznosi 3. 247 00:11:04,040 --> 00:11:04,690 Sada je 6. 248 00:11:04,690 --> 00:11:07,500 Proizvod iznosi 4 puta, sada je 24. 249 00:11:07,500 --> 00:11:10,420 Proizvod puta iznosi 5, sada je 120. 250 00:11:10,420 --> 00:11:16,730 Pa onda u konačnici, mi smo se vraćaju 120, što je točno 5 faktorijalnim. 251 00:11:16,730 --> 00:11:17,510 >> Pitanje 20. 252 00:11:17,510 --> 00:11:22,480 Ovo je jedna u kojoj morate ispuniti U ovoj tablici sa svakom algoritmu, 253 00:11:22,480 --> 00:11:25,735 sve što smo vidjeli, da uklapa ove algoritamski trčanje 254 00:11:25,735 --> 00:11:28,060 puta ove asimptotička puta vožnji. 255 00:11:28,060 --> 00:11:33,270 Dakle, ono što je algoritam koji je omega 1, no veliki O n? 256 00:11:33,270 --> 00:11:35,970 Tako bi moglo biti beskonačno mnoge odgovore ovdje. 257 00:11:35,970 --> 00:11:39,790 Onaj koji smo vidjeli vjerojatno većina Često je samo linearno pretraživanje. 258 00:11:39,790 --> 00:11:42,050 >> Dakle, u najboljem slučaju Scenarij, stavka smo 259 00:11:42,050 --> 00:11:44,050 tražite u počevši od popisa 260 00:11:44,050 --> 00:11:47,400 i tako omega od 1 koraka, Prva stvar koju smo provjerili, 261 00:11:47,400 --> 00:11:49,740 samo smo se odmah vratili da smo pronašli stavke. 262 00:11:49,740 --> 00:11:52,189 U najgorem slučaju, predmet je na kraju, 263 00:11:52,189 --> 00:11:53,730 ili opcija nije na popisu uopće. 264 00:11:53,730 --> 00:11:56,700 Zato moramo tražiti cijeli popis, svi n 265 00:11:56,700 --> 00:11:58,480 elementi, i to je razlog zašto je o n. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> Dakle, sada je nešto što je i Omega n log n, a veliki O n log n. 268 00:12:04,880 --> 00:12:08,650 Pa najrelevantnija stvar vidjeli smo ovdje stapaju vrsta. 269 00:12:08,650 --> 00:12:12,950 Dakle, spajanje vrsta, zapamtite, je u konačnici Theta 270 00:12:12,950 --> 00:12:16,920 n log n, gdje je definiran theta ako oba Omega, a veliki O su isti. 271 00:12:16,920 --> 00:12:17,580 Oba n log n. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> Što je nešto što je Omega N, O i N squared? 274 00:12:21,970 --> 00:12:23,990 Pa, opet postoji više mogućih odgovora. 275 00:12:23,990 --> 00:12:26,440 Ovdje ćemo se dogoditi reći mjehur vrsta. 276 00:12:26,440 --> 00:12:28,840 Ubacivanje kakve će također raditi ovdje. 277 00:12:28,840 --> 00:12:31,400 Zapamtite da mjehur vrsta ima tu optimizaciju gdje, 278 00:12:31,400 --> 00:12:34,630 Ako ste u mogućnosti da biste dobili kroz cijeli popis 279 00:12:34,630 --> 00:12:37,402 bez potrebe za napraviti bilo swaps, onda, dobro, 280 00:12:37,402 --> 00:12:40,110 možemo se odmah vratiti da Popis je izdvojiti za početak. 281 00:12:40,110 --> 00:12:43,185 Dakle, u najboljem slučaju, to je samo omega n. 282 00:12:43,185 --> 00:12:45,960 Ako to nije samo lijepo razvrstani popis za početak, 283 00:12:45,960 --> 00:12:48,270 onda imamo O n kvadrat swaps. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 I na kraju, imamo izbor kakav za n kvadrat, i omega i veliki O. 286 00:12:55,610 --> 00:12:56,850 >> Pitanje 21. 287 00:12:56,850 --> 00:12:58,870 Što je broj preljeva? 288 00:12:58,870 --> 00:13:02,160 Pa opet, slično kao i ranije, imamo samo konacno mnogo bitova 289 00:13:02,160 --> 00:13:04,255 da predstavlja cijeli broj, pa možda 32 bita. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 Recimo da imamo potpisan cijeli broj. 292 00:13:09,180 --> 00:13:12,800 Onda u konačnici najviše pozitivan broj možemo zastupati 293 00:13:12,800 --> 00:13:15,910 2 do 31 minus 1. 294 00:13:15,910 --> 00:13:19,370 Dakle, što će se dogoditi ako pokušamo zatim povećajte taj cijeli broj? 295 00:13:19,370 --> 00:13:25,320 Pa, idemo otići od 2 do 31 minus 1, pa sve do negativnog 2 296 00:13:25,320 --> 00:13:26,490 do 31. 297 00:13:26,490 --> 00:13:29,470 Dakle, to je cijeli broj preljeva kad bi povećavati, 298 00:13:29,470 --> 00:13:32,330 i na kraju ne možete dobiti bilo više i to samo 299 00:13:32,330 --> 00:13:34,520 obaviti sve na putu natrag oko negativnu vrijednost. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> Što o buffer overflow? 302 00:13:37,779 --> 00:13:39,820 Tako tampon overflow-- sjetiti što je tampon. 303 00:13:39,820 --> 00:13:41,000 To je samo komad memorije. 304 00:13:41,000 --> 00:13:43,350 Nešto kao niz je tampon. 305 00:13:43,350 --> 00:13:46,120 Tako buffer overflow je kad pokušate pristupiti memorije 306 00:13:46,120 --> 00:13:47,880 nakon kraja tog polja. 307 00:13:47,880 --> 00:13:50,410 Dakle, ako imate Niz veličine 5 i vama 308 00:13:50,410 --> 00:13:53,700 pokušati pristupiti array držač 5 ili 6 nosač ili nosač 7, 309 00:13:53,700 --> 00:13:56,610 ili bilo što izvan Kraj, ili čak ništa 310 00:13:56,610 --> 00:14:00,790 below-- niz zagrada negativna 1-- svi oni su tampon prelijeva. 311 00:14:00,790 --> 00:14:02,810 Vi ste dira sjećanje na loše načine. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> Pitanje 23. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 Dakle, u ovoj vam je potrebno provesti strlen. 316 00:14:09,100 --> 00:14:11,630 A mi vam kažem da možete Pretpostavljam e neće biti nula, 317 00:14:11,630 --> 00:14:13,790 tako da ne morate učiniti bilo ček na nulu. 318 00:14:13,790 --> 00:14:16,190 A postoji više načina mogao si to učinio. 319 00:14:16,190 --> 00:14:18,440 Ovdje ćemo samo uzeti jednostavan. 320 00:14:18,440 --> 00:14:21,780 Počinjemo s pulta, n. n je računajući koliko znakova postoje. 321 00:14:21,780 --> 00:14:25,560 Tako smo započeli na 0, a onda smo ponoviti tijekom cijelog popisa. 322 00:14:25,560 --> 00:14:29,092 >> Je li s nosač 0 jednaka null terminator lik? 323 00:14:29,092 --> 00:14:31,425 Zapamtite tražimo null terminator znak 324 00:14:31,425 --> 00:14:33,360 kako bi se utvrdilo koliko je naš struna. 325 00:14:33,360 --> 00:14:35,890 To će prekinuti bilo relevantno niz. 326 00:14:35,890 --> 00:14:39,400 Tako je s nosača 0 jednaka na null terminator? 327 00:14:39,400 --> 00:14:42,850 Ako nije, onda ćemo pogled na e nosača 1, s 2 nosača. 328 00:14:42,850 --> 00:14:45,050 Mi zadržati ide dok ne pronaći nultu terminator. 329 00:14:45,050 --> 00:14:48,580 Kada smo ga pronašli, a zatim n sadrži Ukupna duljina niza, 330 00:14:48,580 --> 00:14:49,942 a mi samo možemo vratiti to. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> Pitanje 24. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 Dakle, to je onaj gdje ste moraju napraviti trade off. 335 00:14:56,050 --> 00:14:59,810 Dakle, jedna stvar je dobro u jednom način, ali na koji način je to loše? 336 00:14:59,810 --> 00:15:02,980 Pa evo, neka vrsta spajanja sklon biti brži od mjehurića vrste. 337 00:15:02,980 --> 00:15:06,530 Nakon što je rekao that-- dobro, postoji su više odgovora ovdje. 338 00:15:06,530 --> 00:15:12,930 No, glavno je da mjehurić vrsta je omega n za sortiranog popisa. 339 00:15:12,930 --> 00:15:14,950 >> Sjetite se da smo upravo vidjeli tablicu ranije. 340 00:15:14,950 --> 00:15:17,600 Dakle balon sortira omega n, najbolji scenarij 341 00:15:17,600 --> 00:15:20,010 je da je u stanju samo ići preko Lista jednom, utvrdilo 342 00:15:20,010 --> 00:15:22,270 hej ova stvar već razvrstani, i povratak. 343 00:15:22,270 --> 00:15:25,960 Spoji vrsta, bez obzira na sve što učiniti, je omega n log n. 344 00:15:25,960 --> 00:15:29,200 Dakle, za sortiranog popisa, balon kakve će biti brži. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> Sada što o povezani liste? 347 00:15:32,430 --> 00:15:36,070 Dakle, popis povezani može rasti i smanjiti da stane što više elemenata po potrebi. 348 00:15:36,070 --> 00:15:38,489 Rekavši kako that-- obično izravna usporedba 349 00:15:38,489 --> 00:15:40,280 će biti povezani popis s nizom. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 Dakle, iako nizovi mogu lako rasti i smanjivati 352 00:15:44,050 --> 00:15:47,130 da stane što više elemenata po potrebi, povezani popis 353 00:15:47,130 --> 00:15:49,600 u odnosu na array-- an Niz je slučajni pristup. 354 00:15:49,600 --> 00:15:52,960 Možemo indeks u bilo Posebno element niza. 355 00:15:52,960 --> 00:15:56,430 >> Tako je za popis povezani, ne možemo Samo idite na petom elementu, 356 00:15:56,430 --> 00:16:00,260 moramo proći od početka dok ne dođemo do petog elementa. 357 00:16:00,260 --> 00:16:03,990 I to će nas spriječiti radiš nešto poput binarnog pretraživanja. 358 00:16:03,990 --> 00:16:08,150 Govoreći o binarnom pretraživanje, binarno pretraživanje teži da bude brži od linearnog pretraživanja. 359 00:16:08,150 --> 00:16:11,120 Nakon što je rekao that-- Dakle, jedna stvar je moguće 360 00:16:11,120 --> 00:16:13,380 je da ne možete učiniti binarna potražiti na povezanim popisima, 361 00:16:13,380 --> 00:16:14,730 možete samo to učiniti na polja. 362 00:16:14,730 --> 00:16:18,030 No, vjerojatno je još važnije, ne možete napraviti binarno pretraživanje 363 00:16:18,030 --> 00:16:20,690 na polje koje nije razvrstano. 364 00:16:20,690 --> 00:16:23,990 Unaprijed možda ćete morati razvrstati polje, a tek onda može 365 00:16:23,990 --> 00:16:25,370 vi binarno pretraživanje. 366 00:16:25,370 --> 00:16:27,660 Dakle, ako je vaša stvar nije sortirati za početak, 367 00:16:27,660 --> 00:16:29,250 onda linearno pretraživanje može biti brži. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> Pitanje 27. 370 00:16:31,740 --> 00:16:34,770 Dakle, razmislite program u nastavku, koji će biti u sljedećem slajdu. 371 00:16:34,770 --> 00:16:37,790 A to je onaj gdje smo će htjeti izričito 372 00:16:37,790 --> 00:16:39,980 vrijednosti za razne varijable. 373 00:16:39,980 --> 00:16:41,990 Pa pogledajmo kako. 374 00:16:41,990 --> 00:16:43,160 >> Tako se postroje jedan. 375 00:16:43,160 --> 00:16:45,457 Imamo int x jednak 1. 376 00:16:45,457 --> 00:16:47,040 To je jedino što se dogodilo. 377 00:16:47,040 --> 00:16:50,440 Tako je na jednoj liniji, možemo vidjeti u našim stol, da Y, a, b, i svi su TMP 378 00:16:50,440 --> 00:16:51,540 onesvijestio. 379 00:16:51,540 --> 00:16:52,280 Dakle, ono što je x? 380 00:16:52,280 --> 00:16:53,860 Pa mi samo ga postaviti jednak 1. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 A onda se postroje dva, dobro, vidimo da je y je postavljen na 2, 383 00:16:58,770 --> 00:17:00,550 a stol je već popuniti za nas. 384 00:17:00,550 --> 00:17:03,040 Dakle, x je 1, a Y je 2. 385 00:17:03,040 --> 00:17:05,890 >> Sada, tri linije, sad smo unutar funkcije zamjenu. 386 00:17:05,890 --> 00:17:07,560 Što smo proći mijenjati? 387 00:17:07,560 --> 00:17:11,609 Prošli smo ampersand x za i znak za struju y za b. 388 00:17:11,609 --> 00:17:15,160 Gdje je problem ranije izjavio da adresu x 389 00:17:15,160 --> 00:17:17,520 je 0x10, i adresu y je 0x14. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 Dakle, a i b su jednaki 0x10 i 0x14, respektivno. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> Sada na liniji tri, što su X i Y? 394 00:17:26,250 --> 00:17:28,554 Pa, ništa se nije promijenilo o x i y u ovom trenutku. 395 00:17:28,554 --> 00:17:30,470 Iako su unutar glavnog dimnjaka okvira, 396 00:17:30,470 --> 00:17:32,469 oni još uvijek imaju isti Vrijednosti su činili prije. 397 00:17:32,469 --> 00:17:34,030 Nismo mijenjati bilo memorije. 398 00:17:34,030 --> 00:17:35,710 Dakle, x je 1, y je 2. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 U redu. 401 00:17:37,050 --> 00:17:40,300 Dakle, sada smo rekli int tmp jednaka zvijezda. 402 00:17:40,300 --> 00:17:44,410 Tako je na liniji četiri, svega je isto osim tmp. 403 00:17:44,410 --> 00:17:47,130 Nismo promijenili sve vrijednosti ništa osim tmp. 404 00:17:47,130 --> 00:17:49,230 Mi smo postavljanje tmp jednak zvijezda. 405 00:17:49,230 --> 00:17:50,620 Što je zvijezda? 406 00:17:50,620 --> 00:17:56,240 Pa, a bodovi se x, Tako zvijezda ide na jednaku x, što je 1. 407 00:17:56,240 --> 00:18:00,080 Dakle, sve što se kopira dolje, a TMP postavljena na 1, 408 00:18:00,080 --> 00:18:01,110 >> Sada sljedeći redak. 409 00:18:01,110 --> 00:18:03,380 Star je jednako star b. 410 00:18:03,380 --> 00:18:10,000 Dakle, po liniji five-- i opet, sve je isti, osim što god star je. 411 00:18:10,000 --> 00:18:10,830 Što je zvijezda? 412 00:18:10,830 --> 00:18:13,720 Pa, samo mi je rekao zvijezda je x. 413 00:18:13,720 --> 00:18:16,400 Tako smo mijenjaju x na jednako zvjezdica b. 414 00:18:16,400 --> 00:18:18,960 Što je zvijezda b? y. b ukazuje na y. 415 00:18:18,960 --> 00:18:21,030 Pa star je b y. 416 00:18:21,030 --> 00:18:25,140 Tako smo postavljanje x jednak y, a sve ostalo je isto. 417 00:18:25,140 --> 00:18:29,130 Dakle, vidimo se u sljedećem redu da x je sada 2, a ostali su samo prepisao. 418 00:18:29,130 --> 00:18:31,120 >> Sada u sljedećem retku, zvijezda b jednak tmp. 419 00:18:31,120 --> 00:18:34,740 Pa, samo mi je rekao zvijezda b y, tako da smo postavljanje y jednak tmp. 420 00:18:34,740 --> 00:18:37,450 Sve ostalo je isto, tako da sve dobiva prepisao. 421 00:18:37,450 --> 00:18:42,050 Mi smo postavljanje y jednak MPT, što je jedan, a sve ostalo je isto. 422 00:18:42,050 --> 00:18:43,210 >> Sada napokon, linije sedam. 423 00:18:43,210 --> 00:18:44,700 Vratili smo se u glavnoj funkciji. 424 00:18:44,700 --> 00:18:46,350 Mi smo nakon Swap završi. 425 00:18:46,350 --> 00:18:48,972 Mi smo izgubili A, B, i tmp, ali u konačnici smo 426 00:18:48,972 --> 00:18:51,180 se ne mijenjaju sve vrijednosti ništa u ovom trenutku, 427 00:18:51,180 --> 00:18:52,800 mi samo kopirati X i Y dolje. 428 00:18:52,800 --> 00:18:56,490 A vidimo da su x i y Sada 2 i 1 umjesto 1 i 2. 429 00:18:56,490 --> 00:18:58,160 Swap je uspješno izvršen. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> Pitanje 28. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 Pretpostavimo da naiđete poruke o pogreškama 434 00:19:03,100 --> 00:19:06,790 u nastavku tijekom radnog vremena iduće godine kao CA ili TF. 435 00:19:06,790 --> 00:19:08,930 Savjetovati kako popraviti svaki od tih pogrešaka. 436 00:19:08,930 --> 00:19:11,160 Dakle, nedefinirano spominjanje GetString. 437 00:19:11,160 --> 00:19:12,540 Zašto možda ćete vidjeti ovo? 438 00:19:12,540 --> 00:19:15,380 Pa, ako učenik koristi GetString u svom kodu, 439 00:19:15,380 --> 00:19:20,310 oni uredno hašiš uključene cs50 točka h uključiti cs50 knjižnicu. 440 00:19:20,310 --> 00:19:22,380 >> Pa, što im je činiti potrebno popraviti tu pogrešku? 441 00:19:22,380 --> 00:19:26,810 Oni trebaju napraviti crtica lcs50 na naredbenog retka kada su sastavljanju. 442 00:19:26,810 --> 00:19:29,501 Dakle, ako oni ne prolaze jeka crtica lcs50, oni su 443 00:19:29,501 --> 00:19:32,000 neće imati stvarne Kod koji provodi GetString. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> Pitanje 29. 446 00:19:34,170 --> 00:19:36,190 Implicitno izjavljujući Funkcija knjižnica strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 Pa ovo sada, oni nisu obaviti odgovarajuće mljeveno meso su. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 U ovom konkretnom slučaju, zaglavlje datoteke što im je potrebno uključiti se niz točkica h, 451 00:19:45,410 --> 00:19:48,710 uključujući i gudački dot h, sada student-- sada prevodilac 452 00:19:48,710 --> 00:19:51,750 ima pristup izjave strlen, 453 00:19:51,750 --> 00:19:54,120 a zna da kodu pravilno koriste strlen. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> Pitanje 30. 456 00:19:56,580 --> 00:20:00,240 Više posto pretvorbi od podataka argumenata. 457 00:20:00,240 --> 00:20:01,540 Pa što je ovo? 458 00:20:01,540 --> 00:20:06,470 Pa sjetite se da su ti posto signs-- kako su oni relevantni za printf. 459 00:20:06,470 --> 00:20:08,890 Tako je u printf možemo percent-- možemo ispisati nešto 460 00:20:08,890 --> 00:20:11,380 kao posto sam kose crtice n. 461 00:20:11,380 --> 00:20:15,310 Ili možemo ispisati kao posto i, Prostor, posto ja, prostor, posto ja. 462 00:20:15,310 --> 00:20:18,950 Dakle, za svaku od tih posto znakovi, trebamo 463 00:20:18,950 --> 00:20:21,560 proći varijablu na kraju printf. 464 00:20:21,560 --> 00:20:26,980 >> Dakle, ako kažemo printf zagr posto ja backslash n bliske zagrada, 465 00:20:26,980 --> 00:20:30,270 dobro, možemo reći da smo će ispisati cijeli broj, 466 00:20:30,270 --> 00:20:33,970 ali onda mi ne prođe printf broj zapravo ispisati. 467 00:20:33,970 --> 00:20:37,182 Dakle ovdje više posto pretvorbi od podatkovnih argumenata? 468 00:20:37,182 --> 00:20:39,390 To govori da imamo cijela hrpa postotaka, 469 00:20:39,390 --> 00:20:42,445 a mi nemamo dovoljno varijabli zapravo popuniti u tim postocima. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> A onda definitivno, za pitanje 31, definitivno izgubio 40 bajta u jednom blokova. 472 00:20:50,010 --> 00:20:52,350 Dakle, to je pogreška Valgrind. 473 00:20:52,350 --> 00:20:54,720 To govori da je negdje u kodu, 474 00:20:54,720 --> 00:20:59,010 imate raspodjelu koja je 40 bajtova velika tako da malloced 40 bajtova, 475 00:20:59,010 --> 00:21:00,515 i nikada ga oslobodio. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 Najvjerojatnije trebate samo pronaći neki otjecanje memorije, 478 00:21:05,140 --> 00:21:07,650 i naći mjesto gdje trebate osloboditi ovaj blok memorije. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> I pitanje 32, nevažećim pisati veličine 4. 481 00:21:11,910 --> 00:21:13,250 Opet je to pogreška Valgrind. 482 00:21:13,250 --> 00:21:15,440 To ne morate učiniti s curenja memorije sada. 483 00:21:15,440 --> 00:21:20,750 To je, većina likely-- Mislim, to je neka vrsta nevažećih memorijskih prava. 484 00:21:20,750 --> 00:21:23,270 I vjerojatno je to neka svojevrsni buffer overflow. 485 00:21:23,270 --> 00:21:26,560 Gdje imate niz, možda cijeli niz, i neka je 486 00:21:26,560 --> 00:21:30,115 kažu da je veličine 5, a vi pokušajte dotaknuti array držač 5. 487 00:21:30,115 --> 00:21:34,150 Dakle, ako pokušate napisati na to vrijednost, to nije dio memorije 488 00:21:34,150 --> 00:21:37,440 da zapravo imate pristup, a tako da ćeš dobiti ovaj greška, 489 00:21:37,440 --> 00:21:39,272 govoreći nevažeći pisati veličine 4. 490 00:21:39,272 --> 00:21:42,480 Valgrind će prepoznati da ste pokušavajući dotaknuti memorije neprimjereno. 491 00:21:42,480 --> 00:21:43,980 >> I to je to za quiz0. 492 00:21:43,980 --> 00:21:47,065 Ja sam Rob Bowden, a to je CS50. 493 00:21:47,065 --> 00:21:51,104