1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 ROB BOWDEN: Hi, ek is Rob Bowden, en laat ons praat oor quiz0. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> So, die eerste vraag. 5 00:00:14,545 --> 00:00:17,750 Dit is die vraag waar wat jy nodig het om die nommer te kodeer 6 00:00:17,750 --> 00:00:21,270 127 in die binêre bolle. 7 00:00:21,270 --> 00:00:23,550 As jy wil, kan jy die gereelde omskakeling doen 8 00:00:23,550 --> 00:00:25,950 uit bi-- of uit desimale binêre. 9 00:00:25,950 --> 00:00:28,300 Maar dit is waarskynlik gaan 'n baie tyd te neem. 10 00:00:28,300 --> 00:00:31,750 Ek bedoel, jy kan uit te vind dat, OK, 1 is daar, 2 is daar, 11 00:00:31,750 --> 00:00:33,650 4 is daar, 8 is daar in. 12 00:00:33,650 --> 00:00:39,280 Makliker manier, 127 128 minus een. 13 00:00:39,280 --> 00:00:42,013 Dit linker gloeilamp is die 128-bit. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 So 127 is eintlik net al van die ander gloeilampe, 16 00:00:47,860 --> 00:00:51,420 want dit is die linker gloeilamp minus 1. 17 00:00:51,420 --> 00:00:52,800 Dit is dit vir die vraag. 18 00:00:52,800 --> 00:00:54,060 >> Vraag een. 19 00:00:54,060 --> 00:00:56,710 So met 3 stukkies wat jy kan verteenwoordig 8 verskillende waardes. 20 00:00:56,710 --> 00:01:01,000 Waarom dan, is 7 die grootste nie-negatiewe desimale heelgetal jy kan verteenwoordig? 21 00:01:01,000 --> 00:01:04,050 Wel, as ons kan net verteenwoordig 8 verskillende waardes, 22 00:01:04,050 --> 00:01:07,430 dan wat ons gaan wees verteenwoordig is 0 tot 7. 23 00:01:07,430 --> 00:01:08,745 0 neem een ​​van die waardes. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> Vraag twee. 26 00:01:11,190 --> 00:01:14,610 Met N stukkies, hoeveel duidelike waardes kan jy verteenwoordig? 27 00:01:14,610 --> 00:01:19,080 So, met N stukkies, jy het 2 moontlike waardes vir elke bietjie. 28 00:01:19,080 --> 00:01:22,300 So het ons 2 moontlike waardes vir die eerste bietjie, 2 moontlike waardes 29 00:01:22,300 --> 00:01:24,450 vir die tweede, 2 moontlik vir die derde. 30 00:01:24,450 --> 00:01:28,730 En so dit is 2 keer 2 keer 2, en Uiteindelik is die antwoord is 2 tot die n. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> Vraag drie. 33 00:01:31,100 --> 00:01:33,450 Wat is 0x50 in binêre? 34 00:01:33,450 --> 00:01:39,490 So onthou dat heksadesimale het 'n baie eenvoudige omskakeling na binêre. 35 00:01:39,490 --> 00:01:43,180 So hier het ons net nodig het om te kyk na 5 en die 0 onafhanklik. 36 00:01:43,180 --> 00:01:45,110 So, wat is 5 in binêre? 37 00:01:45,110 --> 00:01:48,400 0101, dit is die 1 bietjie en die 4 bietjie. 38 00:01:48,400 --> 00:01:49,900 Wat is 0 in binêre? 39 00:01:49,900 --> 00:01:50,520 Nie lastig. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 So net sit hulle saam, en dit is die volle getal in binêre. 42 00:01:54,970 --> 00:01:57,640 01.010.000. 43 00:01:57,640 --> 00:02:00,439 En as jy wil jy kan af dat linker nul. 44 00:02:00,439 --> 00:02:01,105 Dit is irrelevant. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> So dan alternatiewelik, Wat is 0x50 in desimale? 47 00:02:05,733 --> 00:02:08,649 As jy wil, kan jy could-- as jy meer gemaklik met die binêre, 48 00:02:08,649 --> 00:02:11,340 jy kan dat binêre antwoord neem en sit dit in desimaal. 49 00:02:11,340 --> 00:02:13,870 Of ons kan net onthou dat heksadesimale. 50 00:02:13,870 --> 00:02:21,140 Sodat 0 is in die 0-de plek, en die 5 is in die 16 tot die eerste plek. 51 00:02:21,140 --> 00:02:25,990 So hier het ons 5 keer 16 aan die eerste, plus 0 keer 16 tot die nul, 52 00:02:25,990 --> 00:02:27,520 80. 53 00:02:27,520 --> 00:02:29,710 En as jy kyk na die titel op die vraag, 54 00:02:29,710 --> 00:02:32,920 dit was CS 80, wat was soort van 'n wenk aan die antwoord op hierdie probleem. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> Vraag vyf. 57 00:02:35,420 --> 00:02:40,320 Ons het hierdie Scratch script, wat herhaal 4 keer grondboontjiebotter gelei. 58 00:02:40,320 --> 00:02:42,800 So hoe kan ons nou kode wat in C? 59 00:02:42,800 --> 00:02:47,730 Wel, ons het here-- die deel in vet is die enigste deel wat jy het om te implementeer. 60 00:02:47,730 --> 00:02:51,950 So het ons 'n 4 lus wat is herhaling 4 tye, printf-ing grondboontjiebotter jellie, 61 00:02:51,950 --> 00:02:53,910 met 'n nuwe lyn as die probleem vra. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> Vraag ses ander Scratch probleem. 64 00:02:57,490 --> 00:03:00,210 Ons sien dat ons in 'n ewig lus. 65 00:03:00,210 --> 00:03:05,000 Ons sê die veranderlike i en dan die verhoog i deur 1. 66 00:03:05,000 --> 00:03:09,580 Nou wil ons dit doen in C. Daar is verskeie maniere waarop ons kon dit gedoen het. 67 00:03:09,580 --> 00:03:12,840 Hier het ons gebeur die die kode vir ewig lus as 'n rukkie (ware). 68 00:03:12,840 --> 00:03:16,600 So verklaar ons die veranderlike i, net soos ons moes veranderlike i in krap. 69 00:03:16,600 --> 00:03:21,950 Verklaar die veranderlike i, en vir ewig terwyl (true), sê ons die veranderlike i. 70 00:03:21,950 --> 00:03:25,260 So printf% i-- of jy kan gebruik het% d. 71 00:03:25,260 --> 00:03:27,985 Ons sê dat veranderlike, en dan inkrementeer, ek ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> Vraag sewe. 74 00:03:30,830 --> 00:03:35,560 Nou wil ons iets baie soortgelyks te doen Mario dot c van die probleem wat een. 75 00:03:35,560 --> 00:03:39,110 Ons wil hierdie hashtags te druk, Ons wil druk 'n vyf 76 00:03:39,110 --> 00:03:40,700 deur drie reghoek van hierdie twee velde. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 So hoe gaan ons dit doen? 79 00:03:43,162 --> 00:03:45,370 Wel, ons gee jou 'n hele n klomp van die kode, en jy net 80 00:03:45,370 --> 00:03:47,560 het in die gedrukte rooster funksie te vul. 81 00:03:47,560 --> 00:03:49,540 >> So wat beteken PrintGrid lyk? 82 00:03:49,540 --> 00:03:51,480 Wel, jy is verby die breedte en die hoogte. 83 00:03:51,480 --> 00:03:53,520 So ons het 'n buitenste 4 lus, dis herhaling 84 00:03:53,520 --> 00:03:57,650 oor al die rye van hierdie rooster wat ons wil uit te druk. 85 00:03:57,650 --> 00:04:01,250 Dan het ons die inter-sub-4 lus, dit is die druk oor elke kolom. 86 00:04:01,250 --> 00:04:06,210 So vir elke ry, ons druk vir elke kolom, 'n enkele hash. 87 00:04:06,210 --> 00:04:10,045 Dan aan die einde van die ry ons druk 'n enkele nuwe lyn te gaan na die volgende ry. 88 00:04:10,045 --> 00:04:11,420 En dit is dit vir die hele rooster. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> Vraag agt. 91 00:04:13,675 --> 00:04:17,170 'N funksie soos PrintGrid word gesê 'n newe-effek, maar nie 'n terugkeer 92 00:04:17,170 --> 00:04:17,670 waarde. 93 00:04:17,670 --> 00:04:19,209 Verduidelik die onderskeid. 94 00:04:19,209 --> 00:04:23,080 So dit hang van jou onthou wat 'n newe-effek is. 95 00:04:23,080 --> 00:04:25,180 Wel, 'n terugkeer value-- ons weet PrintGrid nie 96 00:04:25,180 --> 00:04:28,180 het terugkeer waarde, aangesien hier sê dit nietig. 97 00:04:28,180 --> 00:04:31,150 So iets wat terugkeer nietig nie regtig terugkeer nie. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 So, wat is die newe-effek? 100 00:04:33,620 --> 00:04:36,620 Wel, 'n newe-effek is iets wat soort van voortduur 101 00:04:36,620 --> 00:04:39,500 na die funksie eindig dit was nie net terug, 102 00:04:39,500 --> 00:04:41,340 en dit was nie net uit die insette. 103 00:04:41,340 --> 00:04:44,970 >> So, byvoorbeeld, kan ons verander 'n globale veranderlike. 104 00:04:44,970 --> 00:04:46,590 Dit sou 'n newe-effek wees. 105 00:04:46,590 --> 00:04:49,000 In hierdie spesifieke geval, 'n baie belangrik newe-effek 106 00:04:49,000 --> 00:04:51,070 is die druk op die skerm. 107 00:04:51,070 --> 00:04:53,110 So dit is 'n newe-effek dat PrintGrid het. 108 00:04:53,110 --> 00:04:54,980 Ons druk hierdie dinge aan die skerm. 109 00:04:54,980 --> 00:04:56,370 En jy kan dink wat as 'n newe-effek, 110 00:04:56,370 --> 00:04:58,690 want dit is iets wat voortduur na hierdie funksie eindig. 111 00:04:58,690 --> 00:05:01,481 Dit is iets wat buite die omvang van hierdie funksie wat uiteindelik 112 00:05:01,481 --> 00:05:03,380 word verander, die inhoud van die skerm. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> Vraag nege. 115 00:05:05,839 --> 00:05:07,880 Oorweeg die onderstaande program, waaraan lyn nommers 116 00:05:07,880 --> 00:05:09,740 is bygevoeg vir ter wille van die bespreking. 117 00:05:09,740 --> 00:05:13,480 So in hierdie program ons is net roep GetString, om dit te stoor 118 00:05:13,480 --> 00:05:16,220 in hierdie veranderlike s, en dan druk dat veranderlike s. 119 00:05:16,220 --> 00:05:16,720 OK. 120 00:05:16,720 --> 00:05:19,090 So verduidelik waarom lyn een is teenwoordig. 121 00:05:19,090 --> 00:05:20,920 # include cs50 dot h. 122 00:05:20,920 --> 00:05:23,820 Hoekom moet ons cs50 dot h te include? 123 00:05:23,820 --> 00:05:26,180 Wel ons is die roeping van die GetString funksie, 124 00:05:26,180 --> 00:05:28,840 en GetString word gedefinieer in die cs50 biblioteek. 125 00:05:28,840 --> 00:05:31,600 So as ons het nie # include cs50 dot h, 126 00:05:31,600 --> 00:05:35,760 Ons wil hê dat die implisiete verklaring kry van die GetString funksie fout 127 00:05:35,760 --> 00:05:36,840 uit die samesteller. 128 00:05:36,840 --> 00:05:40,110 Dus moet ons die library-- te sluit Ons moet die kop lêer in te sluit, 129 00:05:40,110 --> 00:05:42,870 of anders sal die samesteller sal nie erken dat GetString bestaan. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> Verduidelik waarom lyn twee is teenwoordig. 132 00:05:46,140 --> 00:05:47,890 So standaard io dot h. 133 00:05:47,890 --> 00:05:50,430 Dit is presies dieselfde as die vorige probleem, 134 00:05:50,430 --> 00:05:53,310 behalwe in plaas van die hantering van GetString, ons praat oor die printf. 135 00:05:53,310 --> 00:05:56,654 So as ons nie sê dat ons moet standaard io dot h in te sluit, 136 00:05:56,654 --> 00:05:58,820 dan sou ons nie in staat wees om die printf funksie te gebruik, 137 00:05:58,820 --> 00:06:00,653 omdat die samesteller sou nie weet nie. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- wat is die betekenis van nietig in lyn vier? 140 00:06:05,260 --> 00:06:08,010 So hier het ons int main (void). 141 00:06:08,010 --> 00:06:10,600 Dit is net te sê dat ons is nie om enige opdrag lyn 142 00:06:10,600 --> 00:06:12,280 argumente na. 143 00:06:12,280 --> 00:06:17,390 Onthou dat ons kan sê int hoof int argc string argv hakies. 144 00:06:17,390 --> 00:06:20,400 So hier het ons net sê nietig ons om te sê ignoreer command line argumente. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> Verduidelik, met betrekking tot die geheue, presies wat GetString in lyn ses opbrengste. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString terugkeer 'n blok van geheue, 'n verskeidenheid van die karakters. 149 00:06:31,640 --> 00:06:34,870 Dit is regtig 'n terugkeer wyser na die eerste karakter. 150 00:06:34,870 --> 00:06:37,170 Onthou dat 'n string is 'n char ster. 151 00:06:37,170 --> 00:06:41,360 So s is 'n verwysing na die eerste karakter in ongeag die string is 152 00:06:41,360 --> 00:06:43,510 dat die gebruiker aangegaan op die sleutelbord. 153 00:06:43,510 --> 00:06:47,070 En dat die geheue gebeur malloced word, sodat die geheue is in die hoop. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> Vraag 13. 156 00:06:50,450 --> 00:06:51,960 Oorweeg die program hieronder. 157 00:06:51,960 --> 00:06:55,579 So al hierdie program is om te doen is printf-ing 1 gedeel deur 10. 158 00:06:55,579 --> 00:06:57,370 So wanneer saamgestel en uitgevoer word, hierdie program 159 00:06:57,370 --> 00:07:01,170 uitsette 0.0, selfs al 1 gedeel deur 10 is 0.1. 160 00:07:01,170 --> 00:07:02,970 So hoekom is dit 0,0? 161 00:07:02,970 --> 00:07:05,510 Wel, dit is omdat van heelgetal afdeling. 162 00:07:05,510 --> 00:07:08,580 So 1 'n heelgetal is, 10 is 'n heelgetal. 163 00:07:08,580 --> 00:07:11,980 So 1 gedeel deur 10, alles behandel word as heelgetalle, 164 00:07:11,980 --> 00:07:16,380 en in C, wanneer ons dit doen heelgetal afdeling, ons afgestomp enige desimale punt. 165 00:07:16,380 --> 00:07:19,590 So 1 gedeel deur 10 is 0, en dan moet ons probeer 166 00:07:19,590 --> 00:07:24,410 wat om te druk as 'n vlot, so nul gedruk as 'n float is 0.0. 167 00:07:24,410 --> 00:07:27,400 En dit is hoekom ons 0.0. 168 00:07:27,400 --> 00:07:28,940 >> Oorweeg die program hieronder. 169 00:07:28,940 --> 00:07:31,280 Nou kan ons die druk van 0.1. 170 00:07:31,280 --> 00:07:34,280 Sodat daar geen heelgetal afdeling, ons is maar net die druk van 0.1, 171 00:07:34,280 --> 00:07:37,100 maar ons druk dit tot 28 desimale plekke. 172 00:07:37,100 --> 00:07:41,810 En ons kry hierdie 0,1000, 'n hele klomp nulle, 5 5 5, blah blah blah. 173 00:07:41,810 --> 00:07:45,495 So die vraag hier is hoekom doen dit druk dat, in plaas van presies 0,1? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> So die rede hier is nou drywende punt onakkuraatheid. 176 00:07:49,640 --> 00:07:53,410 Onthou dat 'n float is slegs 32 stukkies. 177 00:07:53,410 --> 00:07:57,540 So kan ons net 'n beperkte aantal verteenwoordig drywende punt waardes met dié 32 178 00:07:57,540 --> 00:07:58,560 stukkies. 179 00:07:58,560 --> 00:08:01,760 Wel, daar is uiteindelik oneindig baie swaai punt waardes, 180 00:08:01,760 --> 00:08:04,940 en daar is oneindig baie swaai punt waardes tussen 0 en 1, 181 00:08:04,940 --> 00:08:07,860 en ons is natuurlik in staat te verteenwoordig nog meer waardes as dit. 182 00:08:07,860 --> 00:08:13,230 Dus het ons opofferings te maak om in staat wees om die meeste waardes te verteenwoordig. 183 00:08:13,230 --> 00:08:16,960 >> So 'n waarde soos 0,1, blykbaar Ons kan nie voorgee dat presies. 184 00:08:16,960 --> 00:08:22,500 So in plaas van wat ons doen om die 0,1 beste wat ons kan verteenwoordig hierdie 0.100000 5 5 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 En dit is redelik naby, maar vir 'n baie aansoeke 187 00:08:26,306 --> 00:08:28,430 jy hoef te bekommer oor drywende punt onakkuraatheid, 188 00:08:28,430 --> 00:08:30,930 want ons kan net nie verteenwoordig al swaai punte presies. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> Vraag 15. 191 00:08:33,380 --> 00:08:34,679 Oorweeg die kode hieronder. 192 00:08:34,679 --> 00:08:36,630 Ons is net die druk van 1 plus 1. 193 00:08:36,630 --> 00:08:38,289 So daar is geen truuk hier. 194 00:08:38,289 --> 00:08:41,780 1 plus 1 evalueer tot 2, en dan is ons druk nie. 195 00:08:41,780 --> 00:08:42,789 Dit druk net 2. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> Vraag 16. 198 00:08:44,700 --> 00:08:49,450 Nou kan ons die karakter druk 1 plus die karakter 1. 199 00:08:49,450 --> 00:08:52,110 So hoekom doen dit nie druk die dieselfde ding? 200 00:08:52,110 --> 00:08:57,680 Wel, die karakter 1 plus die karakter 1, die karakter 1 het ASCII waarde 49. 201 00:08:57,680 --> 00:09:04,840 So is dit regtig sê 49 plus 49, en Uiteindelik gaan druk 98. 202 00:09:04,840 --> 00:09:06,130 So dit beteken nie druk 2. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> Vraag 17. 205 00:09:09,271 --> 00:09:11,520 Voltooi die implementering van vreemde hieronder in so 'n manier 206 00:09:11,520 --> 00:09:14,615 dat die funksie gee terug waar as N is vreemd en vals as n ewe is. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 Dit is 'n groot doel vir die mod-operateur. 209 00:09:19,330 --> 00:09:24,530 So neem ons ons argument n, As n mod 2 is gelyk aan 1, goed 210 00:09:24,530 --> 00:09:28,030 dit beteken dat n verdeelde deur 2 het 'n res. 211 00:09:28,030 --> 00:09:33,270 As N gedeel deur 2 het 'n res, wat beteken dat n is vreemd, so ons terugkeer waar. 212 00:09:33,270 --> 00:09:34,910 Anders moet ons terugkeer vals. 213 00:09:34,910 --> 00:09:39,070 Jy kan ook gedoen het N mod 2 gelykes nul, terugkeer vals, anders terugkeer waar. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> Oorweeg die rekursiewe funksie hieronder. 216 00:09:43,640 --> 00:09:46,920 So as n minder as of gelyk aan 1, terug 1 217 00:09:46,920 --> 00:09:50,430 anders terugkeer n keer f van N minus 1. 218 00:09:50,430 --> 00:09:52,556 So, wat is hierdie funksie? 219 00:09:52,556 --> 00:09:54,305 Wel, dit is net die faktoriaal funksie. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 Dit is mooi verteenwoordig as N faktoriaal. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> So Vraag 19 nou, ons wil neem hierdie rekursiewe funksie. 224 00:10:02,310 --> 00:10:04,530 Ons wil dit iteratiewe te maak. 225 00:10:04,530 --> 00:10:05,874 So, hoe doen ons dit? 226 00:10:05,874 --> 00:10:07,790 Wel, vir die personeel oplossing, en weer daar 227 00:10:07,790 --> 00:10:11,090 verskeie maniere waarop jy kon gedoen het dat ons begin met hierdie int produk 228 00:10:11,090 --> 00:10:11,812 gelyk 1. 229 00:10:11,812 --> 00:10:13,520 En deur hierdie lus, ons gaan 230 00:10:13,520 --> 00:10:17,590 word vermenigvuldig produk om uiteindelik eindig met die volle faktoriaal. 231 00:10:17,590 --> 00:10:21,870 So vir int i gelyk aan 2, i is minder as of gelyk aan n, i ++. 232 00:10:21,870 --> 00:10:24,130 >> Jy mag dalk wonder hoekom ek gelyk 2. 233 00:10:24,130 --> 00:10:28,380 Wel, onthou dat ons hier te maak seker dat ons basis geval korrek is. 234 00:10:28,380 --> 00:10:32,180 So as n minder as of gelyk 1, ons is net terug 1. 235 00:10:32,180 --> 00:10:34,830 So hier het ons begin by i gelyk aan 2. 236 00:10:34,830 --> 00:10:39,090 Wel, as ek was 1, dan the-- of As N 1 was, dan is die lus 237 00:10:39,090 --> 00:10:40,600 sou dit nie uitvoer nie. 238 00:10:40,600 --> 00:10:43,190 En so sou ons net terugkeer van die produk, wat is 1. 239 00:10:43,190 --> 00:10:45,920 Net so, as n was niks minder as 1-- 240 00:10:45,920 --> 00:10:49,290 As dit was 0, negatiewe 1, whatever-- wil ons nog terugkeer 1, 241 00:10:49,290 --> 00:10:52,260 dit is presies wat die rekursiewe weergawe doen. 242 00:10:52,260 --> 00:10:54,660 >> Nou, as n groter as 1, dan is ons gaan 243 00:10:54,660 --> 00:10:56,550 ten minste een om te doen iterasie van hierdie lus. 244 00:10:56,550 --> 00:11:00,630 So kom ons sê N 5 is, dan is ons gaan produk keer te doen is gelyk aan 2. 245 00:11:00,630 --> 00:11:02,165 So nou produk is 2. 246 00:11:02,165 --> 00:11:04,040 Nou het ons gaan doen produk tye gelyk aan 3. 247 00:11:04,040 --> 00:11:04,690 Nou is dit 6. 248 00:11:04,690 --> 00:11:07,500 Produk tye gelyk aan 4, nou is dit 24. 249 00:11:07,500 --> 00:11:10,420 Produk tye gelyk aan 5, nou is dit 120. 250 00:11:10,420 --> 00:11:16,730 So dan uiteindelik, ons terugkeer 120, wat korrek 5 faktoriaal. 251 00:11:16,730 --> 00:11:17,510 >> Vraag 20. 252 00:11:17,510 --> 00:11:22,480 Dit is die een waar jy hê om te vul in hierdie tabel met enige gegewe algoritme, 253 00:11:22,480 --> 00:11:25,735 iets wat ons gesien het, wat pas hierdie algoritmiese run 254 00:11:25,735 --> 00:11:28,060 keer hierdie asimptotiese run tye. 255 00:11:28,060 --> 00:11:33,270 So, wat is 'n algoritme wat is omega van 1, maar groot O van n? 256 00:11:33,270 --> 00:11:35,970 So kan daar oneindig wees baie antwoorde hier. 257 00:11:35,970 --> 00:11:39,790 Die een wat ons het waarskynlik die meeste gesien dikwels net lineêre soek. 258 00:11:39,790 --> 00:11:42,050 >> So in die beste geval scenario, die item is ons 259 00:11:42,050 --> 00:11:44,050 soek, is by die begin van die lys 260 00:11:44,050 --> 00:11:47,400 en so in omega van 1 stappe, die eerste ding wat ons gaan, 261 00:11:47,400 --> 00:11:49,740 Ons het net dadelik terug dat ons die item. 262 00:11:49,740 --> 00:11:52,189 In die ergste geval scenario, die item is aan die einde, 263 00:11:52,189 --> 00:11:53,730 of die orde is nie in die lys nie. 264 00:11:53,730 --> 00:11:56,700 So ons het om te soek die hele lys, alle n 265 00:11:56,700 --> 00:11:58,480 elemente, en dit is waarom dit is o van n. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> So nou is dit iets wat beide omega van N log N, en 'n groot O van n log n. 268 00:12:04,880 --> 00:12:08,650 Wel, die mees relevante ding Ons het hier gesien is saamsmelt soort. 269 00:12:08,650 --> 00:12:12,950 So saamsmelt soort, onthou, uiteindelik Theta 270 00:12:12,950 --> 00:12:16,920 N log N, waar theta word gedefinieer indien beide omega en 'n groot O is dieselfde. 271 00:12:16,920 --> 00:12:17,580 Beide N teken n. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> Wat is iets wat omega van N, en O van n vierkant? 274 00:12:21,970 --> 00:12:23,990 Wel, weer daar verskeie moontlike antwoorde. 275 00:12:23,990 --> 00:12:26,440 Hier gebeur ons om te sê borrel soort. 276 00:12:26,440 --> 00:12:28,840 Invoeging soort sal ook hier werk. 277 00:12:28,840 --> 00:12:31,400 Onthou dat borrel soort het dat die optimalisering waar, 278 00:12:31,400 --> 00:12:34,630 As jy in staat is om te kry deur die hele lys 279 00:12:34,630 --> 00:12:37,402 sonder om te doen enige swaps, dan, wel, 280 00:12:37,402 --> 00:12:40,110 ons kan onmiddellik dat Die lys is gesorteer te begin. 281 00:12:40,110 --> 00:12:43,185 So in die beste geval, dit is net omega van n. 282 00:12:43,185 --> 00:12:45,960 As dit is nie net 'n mooi gesorteer lys om te begin, 283 00:12:45,960 --> 00:12:48,270 dan het ons O van n vierkant verteenwoordig. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 En uiteindelik, ons het seleksie soort vir n vierkant, sowel omega en 'n groot O. 286 00:12:55,610 --> 00:12:56,850 >> Vraag 21. 287 00:12:56,850 --> 00:12:58,870 Wat is integer oorloop? 288 00:12:58,870 --> 00:13:02,160 Weer goed, soortgelyk aan vroeër, ons het net eindig baie stukkies 289 00:13:02,160 --> 00:13:04,255 'n heelgetal te verteenwoordig, so miskien 32 stukkies. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 Kom ons sê ons het 'n getekende heelgetal. 292 00:13:09,180 --> 00:13:12,800 Dan uiteindelik die hoogste positiewe getal kan ons verteenwoordig 293 00:13:12,800 --> 00:13:15,910 2 aan die 31 minus 1. 294 00:13:15,910 --> 00:13:19,370 So wat gebeur as ons probeer om te dan inkrementeer dat heelgetal? 295 00:13:19,370 --> 00:13:25,320 Wel, ons gaan om te gaan van 2 tot 31 minus 1, al die pad af na 'n negatiewe 2 296 00:13:25,320 --> 00:13:26,490 aan die 31. 297 00:13:26,490 --> 00:13:29,470 So hierdie integer oorloop is wanneer jy hou die verhoog, 298 00:13:29,470 --> 00:13:32,330 en uiteindelik kan jy nie kry 'n hoër en dit net 299 00:13:32,330 --> 00:13:34,520 vou al die pad terug om 'n negatiewe waarde. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> Wat van 'n buffer oorloop? 302 00:13:37,779 --> 00:13:39,820 So 'n buffer overflow-- onthou wat 'n buffer is. 303 00:13:39,820 --> 00:13:41,000 Dit is net 'n stuk van die geheue. 304 00:13:41,000 --> 00:13:43,350 Iets soos 'n skikking is 'n buffer. 305 00:13:43,350 --> 00:13:46,120 So 'n buffer oorloop is wanneer jy probeer om die geheue te bekom 306 00:13:46,120 --> 00:13:47,880 na die einde van die skikking. 307 00:13:47,880 --> 00:13:50,410 So as jy 'n verskeidenheid van grootte 5 en jy 308 00:13:50,410 --> 00:13:53,700 probeer skikking bracket om toegang te verkry 5 of bracket 6 of bracket 7, 309 00:13:53,700 --> 00:13:56,610 of enigiets buite die einde, of selfs enigiets 310 00:13:56,610 --> 00:14:00,790 below-- verskeidenheid bracket negatiewe 1-- almal is buffer oorloop. 311 00:14:00,790 --> 00:14:02,810 Jy raak geheue in slegte maniere. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> Vraag 23. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 So in hierdie een wat jy nodig het strlen te implementeer. 316 00:14:09,100 --> 00:14:11,630 En ons vertel dat jy kan aanvaar s sal nie nul wees nie, 317 00:14:11,630 --> 00:14:13,790 sodat jy nie hoef te doen 'n tjek vir nul. 318 00:14:13,790 --> 00:14:16,190 En daar is verskeie maniere jy kon dit gedoen het. 319 00:14:16,190 --> 00:14:18,440 Hier het ons net die eenvoudige. 320 00:14:18,440 --> 00:14:21,780 Ons begin met 'n toonbank, n. N is tel hoeveel karakters daar is. 321 00:14:21,780 --> 00:14:25,560 So het ons begin by 0, en dan moet ons Itereer oor die hele lys. 322 00:14:25,560 --> 00:14:29,092 >> Is s bracket 0 gelyk is aan die nul terminator karakter? 323 00:14:29,092 --> 00:14:31,425 Onthou ons is op soek na die nul terminator karakter 324 00:14:31,425 --> 00:14:33,360 om te bepaal hoe lank ons ​​string is. 325 00:14:33,360 --> 00:14:35,890 Dit gaan staak enige relevante string. 326 00:14:35,890 --> 00:14:39,400 So is s bracket 0 gelyke om die nul terminator? 327 00:14:39,400 --> 00:14:42,850 As dit is nie, dan is ons gaan kyk na s bracket 1, s bracket 2. 328 00:14:42,850 --> 00:14:45,050 Ons hou gaan totdat ons vind die nul terminator. 329 00:14:45,050 --> 00:14:48,580 Sodra ons dit gevind het, dan N bevat die totale lengte van die string, 330 00:14:48,580 --> 00:14:49,942 en ons kan net terug nie. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> Vraag 24. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 So, dit is die een waar jy het die handel af te maak. 335 00:14:56,050 --> 00:14:59,810 So een ding is goed in een manier, maar hoe is dit sleg? 336 00:14:59,810 --> 00:15:02,980 So hier, saam te smelt soort geneig is om te wees vinniger as borrel soort. 337 00:15:02,980 --> 00:15:06,530 Dit gesê that-- Wel, daar is verskeie antwoorde hier. 338 00:15:06,530 --> 00:15:12,930 Maar die belangrikste een is dat borrel soort is omega van N vir 'n gesorteerde lys. 339 00:15:12,930 --> 00:15:14,950 >> Onthou dat tafel het ons net vroeër gesien het. 340 00:15:14,950 --> 00:15:17,600 So borrel sorteer omega van N, die beste scenario 341 00:15:17,600 --> 00:15:20,010 is dit in staat is om te gaan net oor die lys weer, bepaal 342 00:15:20,010 --> 00:15:22,270 hey hierdie ding is reeds gesorteer, en terugkeer. 343 00:15:22,270 --> 00:15:25,960 Merge soort, maak nie saak wat wat jy doen, is omega van N log N. 344 00:15:25,960 --> 00:15:29,200 So vir gesorteerde lys, borrel soort gaan vinniger. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> Nou wat van geskakelde lyste? 347 00:15:32,430 --> 00:15:36,070 So 'n geskakelde lys kan groei en krimp soveel elemente te pas soos nodig. 348 00:15:36,070 --> 00:15:38,489 Dit gesê that-- so gewoonlik die direkte vergelyking 349 00:15:38,489 --> 00:15:40,280 gaan wees om 'n verband lys met 'n verskeidenheid. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 So selfs al skikkings kan maklik groei en krimp 352 00:15:44,050 --> 00:15:47,130 soveel elemente aan te pas as dit nodig is, 'n geskakelde lys 353 00:15:47,130 --> 00:15:49,600 in vergelyking met 'n array-- 'n skikking het ewetoeganklike. 354 00:15:49,600 --> 00:15:52,960 Ons kan kruip in 'n spesifieke element van die skikking. 355 00:15:52,960 --> 00:15:56,430 >> So vir 'n geskakelde lys, kan ons nie gaan net na die vyfde element, 356 00:15:56,430 --> 00:16:00,260 Ons het om oor te steek van die begin af totdat ons na die vyfde element. 357 00:16:00,260 --> 00:16:03,990 En wat gaan ons om te verhoed om iets te doen soos binêre soek. 358 00:16:03,990 --> 00:16:08,150 Praat van binêre soek, binêre soek geneig is om vinniger as lineêre soek wees. 359 00:16:08,150 --> 00:16:11,120 Dit gesê that-- so, een moontlike ding 360 00:16:11,120 --> 00:16:13,380 is dat jy nie binêre kan doen soek op geskakelde lyste, 361 00:16:13,380 --> 00:16:14,730 jy kan dit net op skikkings. 362 00:16:14,730 --> 00:16:18,030 Maar waarskynlik meer belangrik, jy kan dit nie doen binêre soek 363 00:16:18,030 --> 00:16:20,690 op 'n skikking wat nie gesorteer. 364 00:16:20,690 --> 00:16:23,990 Upfront jy dalk nodig het om te sorteer die skikking, en dan slegs kan 365 00:16:23,990 --> 00:16:25,370 jy doen binêre soek. 366 00:16:25,370 --> 00:16:27,660 So as jou ding is nie gesorteer om te begin, 367 00:16:27,660 --> 00:16:29,250 dan lineêre soek dalk vinniger wees. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> Vraag 27. 370 00:16:31,740 --> 00:16:34,770 So kyk na die program hieronder, wat sal wees in die volgende skuif. 371 00:16:34,770 --> 00:16:37,790 En dit is die een waar ons is gaan om te wil uitdruklik 372 00:16:37,790 --> 00:16:39,980 die waardes vir die verskillende veranderlikes. 373 00:16:39,980 --> 00:16:41,990 So laat ons kyk na dit. 374 00:16:41,990 --> 00:16:43,160 >> So lyn een. 375 00:16:43,160 --> 00:16:45,457 Ons het int x is gelyk aan 1. 376 00:16:45,457 --> 00:16:47,040 Dit is die enigste ding wat gebeur het. 377 00:16:47,040 --> 00:16:50,440 So op lyn een, sien ons in ons tafel, y, a, b, en tmp is al 378 00:16:50,440 --> 00:16:51,540 bewussyn verloor. 379 00:16:51,540 --> 00:16:52,280 So, wat is x? 380 00:16:52,280 --> 00:16:53,860 Wel, ons het net stel dit gelyk aan 1. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 En dan word twee, goed, sien ons dat y is ingestel op 2, 383 00:16:58,770 --> 00:17:00,550 en die tafel is reeds gevul in vir ons. 384 00:17:00,550 --> 00:17:03,040 So x is 1 en y 2. 385 00:17:03,040 --> 00:17:05,890 >> Nou, lyn drie, het ons nou is binne-in die ruil-funksie. 386 00:17:05,890 --> 00:17:07,560 Wat het ons verby te ruil? 387 00:17:07,560 --> 00:17:11,609 Ons geslaag ampersand x a, en ampersand y vir b. 388 00:17:11,609 --> 00:17:15,160 Waar die probleem vroeër verklaar dat die adres van x 389 00:17:15,160 --> 00:17:17,520 is 0x10, en die adres van y is 0x14. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 So A en B is gelyk aan 0x10 en 0x14, onderskeidelik. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> Nou op lyn drie, wat x en y? 394 00:17:26,250 --> 00:17:28,554 Wel, niks het verander oor x en y op hierdie punt. 395 00:17:28,554 --> 00:17:30,470 Selfs al is hulle binne 'n hoof stapel raam, 396 00:17:30,470 --> 00:17:32,469 hulle nog steeds dieselfde het waardes wat hulle gedoen het voor. 397 00:17:32,469 --> 00:17:34,030 Ons het nie verander nie die geheue. 398 00:17:34,030 --> 00:17:35,710 So x is 1, y 2. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 Alle regte. 401 00:17:37,050 --> 00:17:40,300 So nou het ons gesê int tmp gelyk om 'n ster. 402 00:17:40,300 --> 00:17:44,410 So op reël vier, alles is dieselfde, behalwe vir tmp. 403 00:17:44,410 --> 00:17:47,130 Ons het nie enige waardes verander van enigiets behalwe vir tmp. 404 00:17:47,130 --> 00:17:49,230 Ons is besig tmp gelyk om 'n ster. 405 00:17:49,230 --> 00:17:50,620 Wat is 'n ster? 406 00:17:50,620 --> 00:17:56,240 Wel, 'n punte x, So ster 'n gaan gelyk x, wat is 1. 407 00:17:56,240 --> 00:18:00,080 So alles is gekopieer af, en tmp is ingestel op 1. 408 00:18:00,080 --> 00:18:01,110 >> Nou is die volgende reël. 409 00:18:01,110 --> 00:18:03,380 Star 'n gelyk ster b. 410 00:18:03,380 --> 00:18:10,000 So deur die lyn five-- weer goed, alles is dieselfde, behalwe alles ster 'n is. 411 00:18:10,000 --> 00:18:10,830 Wat is 'n ster? 412 00:18:10,830 --> 00:18:13,720 Wel, ons het net gesê star a x. 413 00:18:13,720 --> 00:18:16,400 So ons is besig om x te gelyk ster b. 414 00:18:16,400 --> 00:18:18,960 Wat is ster b? y. b punte y. 415 00:18:18,960 --> 00:18:21,030 So ster b y. 416 00:18:21,030 --> 00:18:25,140 So ons is die opstel van x gelyk aan y, en alles is dieselfde. 417 00:18:25,140 --> 00:18:29,130 So sien ons in die volgende ry dat x is nou 2, en die res is net gekopieer. 418 00:18:29,130 --> 00:18:31,120 >> Nou in die volgende lyn, ster b is gelyk aan tmp. 419 00:18:31,120 --> 00:18:34,740 Wel, ons het net gesê ster b y, so ons is die opstel van y gelyk aan tmp. 420 00:18:34,740 --> 00:18:37,450 Alles is dieselfde, sodat alles raak gekopieer. 421 00:18:37,450 --> 00:18:42,050 Ons is die opstel van y gelyk aan TMP, wat een, en alles is dieselfde. 422 00:18:42,050 --> 00:18:43,210 >> Nou uiteindelik, lyn sewe. 423 00:18:43,210 --> 00:18:44,700 Ons is terug in die belangrikste funksie. 424 00:18:44,700 --> 00:18:46,350 Ons is na ruil klaar is. 425 00:18:46,350 --> 00:18:48,972 Ons het verloor A, B, en tmp, maar uiteindelik het ons 426 00:18:48,972 --> 00:18:51,180 is nie die verandering van enige waardes enigiets op hierdie punt, 427 00:18:51,180 --> 00:18:52,800 Ons het net kopieer x en y neer. 428 00:18:52,800 --> 00:18:56,490 En ons sien dat x en y nou 2 en 1 in plaas van 1 en 2. 429 00:18:56,490 --> 00:18:58,160 Die omruil het suksesvol uitgevoer word. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> Vraag 28. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 Veronderstel dat jy teëkom die fout boodskappe 434 00:19:03,100 --> 00:19:06,790 hieronder gedurende kantoorure volgende jaar as 'n GR of TF. 435 00:19:06,790 --> 00:19:08,930 Adviseer oor hoe om elk van hierdie foute op te los. 436 00:19:08,930 --> 00:19:11,160 So ongedefinieerde verwysing na GetString. 437 00:19:11,160 --> 00:19:12,540 Hoekom kan jy sien dit? 438 00:19:12,540 --> 00:19:15,380 Wel, as 'n student die gebruik van GetString in hulle kode, 439 00:19:15,380 --> 00:19:20,310 hulle het behoorlik ingesluit hash cs50 dot h die cs50 biblioteek in te sluit. 440 00:19:20,310 --> 00:19:22,380 >> Wel, wat doen hulle moet hierdie fout op te los? 441 00:19:22,380 --> 00:19:26,810 Hulle moet 'n bietjie lcs50 by die te doen command line wanneer hulle die opstel van. 442 00:19:26,810 --> 00:19:29,501 So as hulle nie slaag nie klang Dash lcs50, hulle is 443 00:19:29,501 --> 00:19:32,000 gaan nie die werklike te hê kode wat implemente GetString. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> Vraag 29. 446 00:19:34,170 --> 00:19:36,190 Onvoorwaardelik verklaar biblioteek funksie strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 Wel, dit nou, hulle het nie gedoen om die behoorlike hash sluit. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 In hierdie spesifieke geval, die kop lêer wat hulle nodig het in te sluit is string dot h, 451 00:19:45,410 --> 00:19:48,710 en met string dot h, nou die student-- nou die samesteller 452 00:19:48,710 --> 00:19:51,750 het toegang tot die verklarings van strlen, 453 00:19:51,750 --> 00:19:54,120 en weet dat jou kode gebruik StrLen korrek. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> Vraag 30. 456 00:19:56,580 --> 00:20:00,240 Meer persent doelskoppe as data argumente. 457 00:20:00,240 --> 00:20:01,540 So, wat is dit? 458 00:20:01,540 --> 00:20:06,470 Wel onthou dat hierdie persent signs-- hoe hulle betrokke te printf. 459 00:20:06,470 --> 00:20:08,890 So in printf ons kan percent-- ons iets druk 460 00:20:08,890 --> 00:20:11,380 soos persent i agteroorskuinsstreep n. 461 00:20:11,380 --> 00:20:15,310 Of ons kan druk soos persent i, ruimte, persent i, ruimte, persent i. 462 00:20:15,310 --> 00:20:18,950 So vir elk van dié persent tekens, moet ons 463 00:20:18,950 --> 00:20:21,560 'n veranderlike te slaag aan die einde van printf. 464 00:20:21,560 --> 00:20:26,980 >> So as ons sê printf hakie persent Ek agteroorskuinsstreep n noue paren, 465 00:20:26,980 --> 00:20:30,270 Wel, ons sê dat ons gaan 'n heelgetal te druk, 466 00:20:30,270 --> 00:20:33,970 Maar dan moet ons printf nie slaag nie 'n heelgetal te eintlik druk. 467 00:20:33,970 --> 00:20:37,182 So hier meer persent doelskoppe as data argumente? 468 00:20:37,182 --> 00:20:39,390 Dit sê dat ons 'n hele klomp van Procenten, 469 00:20:39,390 --> 00:20:42,445 en ons het nie genoeg veranderlikes het nie om werklik vul die persente. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> En dan beslis vir vraag 31, beslis verloor 40 grepe in een blokke. 472 00:20:50,010 --> 00:20:52,350 So dit is 'n Valgrind fout. 473 00:20:52,350 --> 00:20:54,720 Dit word gesê dat iewers in jou kode, 474 00:20:54,720 --> 00:20:59,010 jy het 'n toekenning wat 40 grepe groot sodat jy malloced 40 grepe, 475 00:20:59,010 --> 00:21:00,515 en jy nooit bevry nie. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 Heel waarskynlik het jy net nodig sommige geheugenlek te vind, 478 00:21:05,140 --> 00:21:07,650 en vind waar jy nodig het om te vry om hierdie blok van die geheue. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> En die vraag 32, ongeldig skryf van grootte 4. 481 00:21:11,910 --> 00:21:13,250 Weereens is dit 'n Valgrind fout. 482 00:21:13,250 --> 00:21:15,440 Dit hoef nie te doen met die geheue lekkasies nou. 483 00:21:15,440 --> 00:21:20,750 Dit is die meeste likely-- Ek bedoel, is dit 'n soort van ongeldig geheue regte. 484 00:21:20,750 --> 00:21:23,270 En waarskynlik dit is 'n soort buffer oorloop. 485 00:21:23,270 --> 00:21:26,560 Waar jy 'n skikking, miskien 'n heelgetal skikking, en laat ons 486 00:21:26,560 --> 00:21:30,115 sê dit is van groot 5, en jy probeer skikking bracket 5 aan te raak. 487 00:21:30,115 --> 00:21:34,150 So as jy probeer om dit te skryf waarde, dit is nie 'n stuk van die geheue 488 00:21:34,150 --> 00:21:37,440 dat jy eintlik toegang te hê, en so jy gaan hierdie fout te kry, 489 00:21:37,440 --> 00:21:39,272 sê ongeldig skryf van grootte 4. 490 00:21:39,272 --> 00:21:42,480 Valgrind gaan om te erken dat jy probeer geheue te onvanpas raak. 491 00:21:42,480 --> 00:21:43,980 >> En dit is dit vir quiz0. 492 00:21:43,980 --> 00:21:47,065 Ek is Rob Bowden, en dit is CS50. 493 00:21:47,065 --> 00:21:51,104