Rob Bowden: Hi, Mən Rob Bowden deyiləm və in quiz0 haqqında danışmaq edək.
>> Belə ki, ilk sual.
Bu sual harada Nömrəni kod lazım
Ikili ampüller 127.
Siz istəyirdi, siz bilər müntəzəm dönüşüm
ondalık ikili üçün, bi-- ya.
Amma yəqin ki, olacaq çox vaxt almaq.
Mən sizə ki, anlamaq bilər, demək, OK, 1, orada 2 orada deyil
4 var, 8 orada deyil.
Asan yolu, 127 128 minus biridir.
Ki, leftmost ampul 128-bit edir.
Belə ki, 127 yalnız bütün həqiqətən digər yüngül ampüller,
ki, leftmost ildən ampul minus 1.
Ki, sual üçün var.
>> Sual biridir.
3 bit Belə ki, siz 8 fərqli dəyərlər təmsil.
Niyə, sonra, ən böyük qeyri-mənfi 7 siz təmsil edə bilər onluq tam?
Yaxşı, əgər biz yalnız bilərsiniz 8 fərqli dəyərlər təmsil,
sonra nə biz olacaq təmsil 7 vasitəsilə 0.
0 dəyərlərdən biri edir.
>> Sual iki.
N bit ilə, necə bir çox fərqli dəyərlər təmsil edə bilər?
Belə ki, n bit ilə, siz var 2 hər bit üçün mümkün dəyərlər.
Beləliklə, biz 2 mümkün dəyərlər üçün ilk bit, 2 mümkün dəyərlər
ikinci, 2 üçüncü mümkün.
Və belə ki, 2 dəfə 2 dəfə 2, və nəticədə cavab n 2.
>> Sual üç.
Ikili 0x50 nədir?
Belə ki, hexadecimal bir çox var ki, unutmayın ikili sadə dönüşüm.
Belə ki, burada biz yalnız baxmaq lazımdır 5 və müstəqil 0.
Belə ki, ikili 5 var?
0101, ki, 1 bit və 4 bit var.
Ikili 0 nədir?
Çətin deyil.
0000.
Belə ki, yalnız onlara birlikdə qoymaq və ki, ikili tam sayı var.
01010000.
Siz istəyirdi və siz ki, leftmost sıfır çıxarmaq.
Bu əlaqəsiz deyil.
>> Beləliklə alternativ, ondalık da 0x50 nədir?
Siz istəyirdi əgər istəyirsinizsə, siz could-- ikitərəfli ilə daha rahat,
ki, ikili cavab bilər və ondalık daxil çevirmək.
Yoxsa biz yalnız xatırlayıram bilər ki, hexadecimal.
0 Belə ki, 0-ci yerdədir, və 5 birinci yerə 16 edir.
Belə ki, burada biz 5 dəfə 16 var ilk sıfıra plus 0 dəfə 16,
80.
Və siz baxdı əgər sualına adı,
bir növ olan CS 80 idi Bu problemin cavabını işarə.
>> Sual beş.
Biz olan bu Scratch script var 4 dəfə peanut yağ jelly təkrar.
Belə ki, necə biz C kodu indi bunu?
Bəli, biz burada qalın hissəsi siz həyata keçirilməsi üçün idi yalnız bir hissəsidir.
Beləliklə, biz 4 loop ki, 4 loop var dəfə, printf-Ing peanut yağ jelly,
yeni xətt ilə problem üçün xahiş kimi.
>> Sual altı başqa Scratch problem.
Biz əbədi loop var ki, görəcəksiniz.
Biz dəyişən i deyərək edirik və sonra 1-i incrementing.
İndi biz C. var ki, bunu istəyirəm biz bu həyata bilər çox yolları.
Burada kod oldu Bir müddət (doğru) kimi əbədi loop.
Beləliklə, biz yalnız, dəyişən i elan kimi biz Not dəyişən i idi.
Dəyişən i elan və əbədi (doğru) isə, biz dəyişən i deyirlər.
Printf% i və ya% d istifadə etdiyiniz bilər belə.
Biz dəyişən demək, və sonra arttırmayı, i ++.
>> Sual yeddi.
İndi biz çox oxşar bir şey etmək istəyirəm Mario dot c problem bir seçin.
Biz bu hashtags çap etmək istəyirəm, biz beş çap etmək istəyirəm
bu hashes üç düzbucaqlı.
Belə ki, necə ki, biz bunu gedir?
Bəli, biz bir bütün vermək kodu dəstə, və yalnız
çap grid funksiyası doldurmaq lazımdır.
>> Belə ki, nə PrintGrid kimi görünür?
Yaxşı keçmiş istəyirik eni və hündürlüyü.
Beləliklə, biz bir xarici var 4 loop ki, loop
bu satır bütün biz çap etmək istəyirəm ki grid.
Sonra biz inter-nested 4 loop var hər sütun üzərində çap.
Belə ki, hər cərgə üçün, biz çap hər sütun, bir hash.
Sonra sıra sonunda biz çap bir yeni xətt növbəti sıra getmək üçün.
Və bütün grid üçün var.
>> Sual səkkiz.
PrintGrid kimi funksiyası deyilir bir dönüş bir yan təsiri var, lakin
dəyəri.
Fərq izah olunur.
Belə ki, bu xatırlayaraq əsaslanır bir yan təsiri nə.
Yaxşı, bir geri dəyər biz PrintGrid deyil bilirik
ildən, qaytarılması dəyəri burada bu etibarsız deyir.
Etibarsız qaytarır ki, belə bir şey həqiqətən bir şey geri deyil.
Belə ki, yan təsiri nədir?
Yaxşı, bir yan təsiri sort davam ki, bir şey
funksiyası başa çatdıqdan sonra ki, yalnız geri deyil
və yalnız giriş idi.
>> Belə ki, məsələn, biz bilər qlobal dəyişən dəyişir.
Bir yan təsiri olacaq.
Bu halda, bir çox əhəmiyyətli yan təsiri
ekran çap.
Belə ki, bir yan təsiri ki PrintGrid var.
Biz ekran bu şeyi çap.
Və siz hesab edə bilər ki, bir yan təsiri olaraq,
ki, bir şey bəri bu funksiya başa sonra davam.
Bu əhatəsi xaricində bir şey var Bu funksiya nəticədə
dəyişdirilə olunur ki, ekran məzmunu.
>> Sual doqquz.
Aşağıdakı proqram düşünün xətt nömrələri
əlavə edilmişdir müzakirə naminə.
Bu proqram Beləliklə, biz yalnız var saxlanılması, GetString zəng
bu dəyişən s, və sonra ki, dəyişən s çap.
OK.
Line bir mövcud niyə belə izah edir.
# daxildir cs50 dot h.
Niyə biz CS50 dot h # daxil etmək lazımdır?
Yaxşı zəng etdiyiniz Funksiyası GetString,
və GetString müəyyən edilir CS50 kitabxana.
Biz olmasaydı belə # daxildir cs50 dot h,
ki, gizli bəyannamə almaq olardı GetString funksiyası səhv
compiler edir.
Belə ki, biz kitabxana daxil etmək lazımdır Biz header fayl daxil etmək lazımdır,
və ya başqa compiler deyil GetString var ki, tanımalıdır.
>> Xətti iki mövcud izah.
Belə ki, standart io dot h.
Bu tam eyni əvvəlki problem kimi,
yerinə ilə məşğul başqa GetString, biz printf söhbət edirik.
Biz lazım demədim əgər Belə ki, Standart io dot h daxil,
sonra biz edə bilməz printf funksiyasından istifadə etmək üçün,
compiler çünki bu barədə deyil.
>> Why-- əhəmiyyəti nədir xətti dörd ləğv?
Belə ki, burada biz int əsas (void) var.
Ki, yalnız bu biz deyən oldu Hər hansı bir command line əldə deyil
əsas arqumentlər.
Biz int demək olar ki, xatırlayıram Əsas int argc string argv mötərizədə.
Belə ki, burada biz yalnız biz demək etibarsız demək command line dəlilləri gözardı edilir.
>> Dəqiq, xatirəsinə hörmət ilə izah line nə GetString altı qaytarır.
GetString blokunun qaytarılması yaddaş, simvol bir sıra.
Bu, həqiqətən bir qaytarılması ilk xarakteri göstərici.
Bir string bir char ulduz olduğunu unutmayın.
Belə ki, ilk bir göstəricisidir xarakter hər hansı simli deyil
istifadəçi klaviatura daxil.
Və yaddaş malloced olur, belə ki, yaddaş yığın edir.
>> Sual 13.
Aşağıdakı proqram düşünün.
Belə ki, bütün bu proqram edir 10 bölünür 1 printf-Ing edir.
Belə ki, tərtib zaman və edam, bu proqram
nəticələri 0.0, baxmayaraq 1 10 bölünür 0.1.
Belə ki, niyə 0.0 edir?
Bəli, bu, çünki tam bölgüsü.
Belə ki, 1 tam 10 tam edir.
Belə ki, 1 10, hər şey bölünür integers kimi müalicə olunur,
və C, biz tam bölgüsü nə zaman, Biz hər hansı bir kəsir kəsmək.
Belə ki, 1 10 bölünür 0, sonra biz çalışırıq
belə ki, bir float kimi çap bir float kimi çap sıfır 0.0 edir.
Biz 0.0 almaq niyə və ki.
>> Aşağıdakı proqram düşünün.
İndi biz 0,1 çap edirik.
Belə ki, heç tam bölgüsü, biz yalnız, 0.1 çap edirik
lakin biz bunu çap edirik 28 onluq yerlərinə.
Və biz bu 0,1000, bir dəstə almaq adet sıfır, 5 5 5, blah blah blah.
Bunu niyə Belə ki, burada sual əvəzinə tam 0.1, çap?
>> Belə ki, burada səbəb indi point qeyri-dəqiqlik üzən.
Bir float yalnız 32 bit olduğunu unutmayın.
Belə ki, biz yalnız bir sonlu sayı təmsil edə bilər bu 32 point dəyərləri üzən
bit.
Yaxşı nəticədə sonsuz var çox üzən point dəyərləri,
və üzən sonsuz çox var 0 və 1 arasında point dəyərləri,
və biz açıq-aydın edə istəyirik ki, daha çox dəyərlər təmsil.
Belə ki, biz fədakarlıq etmək lazımdır Ən dəyərlər təmsil edə bilər.
>> Belə ki, 0.1 kimi dəyəri, yəqin biz tam təmsil edə bilməz.
Belə ki, əvəzinə 0.1 təmsil biz nə yaxşı biz bu 0.100000 5 5 təmsil edə bilər
5.
Və olduqca yaxın, lakin applications bir çox üçün
Siz narahat point qeyri-dəqiqlik üzən,
biz yalnız təmsil edə bilməz, çünki bütün dəqiq xal üzən.
>> Sual 15.
Aşağıdakı kodu düşünün.
Biz yalnız 1 plus 1 çap edirik.
Belə ki, burada heç bir oyun yoxdur.
1 plus 1 2 qiymətləndirir, və sonra biz çap edirik.
Bu yalnız 2 görüntüler.
>> Sual 16.
İndi biz xarakter çap edirik 1 plus karakter 1.
Belə ki, niyə bu deyil eyni şey çap?
Yaxşı karakter 1 plus karakter 1, karakter 1 ASCII dəyəri 49 var.
Belə ki, bu, həqiqətən, 49 söyləyərək plus 49, və nəticədə bu 98 çap edir.
Belə ki, bu 2 çap deyil.
>> Sual 17.
Həyata tamamlayın belə bir şəkildə aşağıda tək
funksiyası əgər doğru qayıdır n hətta əgər n tək və yalan.
Bu böyük məqsədi MOD operator üçün.
Belə ki, biz dəlil n almaq, n mod 2 quyusunun 1 bərabərdir əgər
N bölünür deməkdir 2 bir qalan idi.
N 2 bölünür, bir qalan idi ki, n tək, belə ki, biz doğru qayıtmaq deməkdir.
Else biz saxta qayıtmaq.
Siz həmçinin 2 bərabər mod n bilərdi sıfır başqa, yalan qayıtmaq doğru qayıtmaq.
>> Aşağıdakı recursive funksiyası düşünün.
N Belə ki daha az və ya 1 qayıtmaq, 1 bərabər,
n minus 1 f başqa qaytarılması n dəfə.
Belə ki, bu funksiyası nədir?
Bəli, bu yalnız edir faktöryel funksiyası.
Bu gözəl təmsil olunur n faktöryel kimi.
>> Belə ki, indi 19 sual, biz istəyirik Bu recursive funksiyası almaq.
Biz iterativ etmək istəyirəm.
Belə ki, necə biz etməliyəm?
Yaxşı heyəti üçün həll, və yenə var
Siz bilərdi çox yolları , biz bu int məhsul ilə başlamaq
1 bərabərdir.
Bu ərzində loop üçün, gedirik
nəticədə məhsul vurulması üçün tam faktöryel ilə son.
Int i 2 bərabərdir, belə ki, i daha az və ya n bərabər, i ++.
>> I 2 bərabərdir nə merak bilər.
Yaxşı, biz burada var ki, unutmayın Bizim baza halda doğru əmin olun.
N daha az və ya bərabər olduqda belə 1, biz yalnız 1 qaytarılması edirik.
I 2 bərabərdir burada artıq Belə ki, biz başlamaq.
Yaxşı i 1 idi, onda the-- və ya n loop sonra, 1 olsaydı
bütün icra deyil.
Və belə ki, biz yalnız ki 1 olan qaytarılması məhsul.
Eynilə, əgər n idi çox bir şey az 1--
Bu 0, əgər mənfi 1, whatever-- biz hələ, 1 qaytarılması olarıq
dəqiq hansı deyil recursive versiyası edir.
>> İndi, n böyük olduqda 1 daha sonra gedirik
ən azı bir etmək bu loop iteration.
Beləliklə, biz istəyirik,-nin N 5 deyək məhsul dəfə edəcəyimiz 2 bərabərdir.
Belə ki, indi məhsul 2.
İndi biz nə olacaq məhsul dəfə 3 bərabərdir.
İndi 6 var.
Product dəfə artıq 24 deyil, 4 bərabərdir.
Product dəfə indi 120 var, 5 bərabərdir.
Beləliklə, son nəticədə, biz qaytarılması edirik Düzgün 5 Faktorial olan 120.
>> Sual 20.
Bu doldurmaq üçün bir hər hansı bir alqoritmi ilə bu masa,
biz gördük ki, bir şey ki, Bu alqoritmik run uyğun
dəfə bu asimptotik run dəfə.
Belə ki, bir alqoritm nə olduğunu 1 omega, lakin n böyük O nədir?
Belə ki, sonsuz ola bilər Burada çox da cavabları.
Biz yəqin ki, ən gördüm ki, bir tez-tez yalnız xətti axtarış edir.
>> Ən yaxşı halda belə ssenari, biz istəyirik maddə
axtarır edir siyahısının başlayan
və 1 addımlar omega, biz yoxlamaq ilk şey,
biz yalnız dərhal qayıtmaq ki, maddə aşkar.
Ən pis halda ssenari, maddə, sonunda
və ya maddə bütün siyahısı deyil.
Beləliklə, biz axtarış bütün siyahısı, bütün n
elementləri, və n o nə var.
>> Belə ki, indi həm də ki, bir şey var n log n omega, və n log n böyük O.
Yaxşı ən müvafiq şey Biz burada gördüyümüz sort daxil etdik.
Belə ki, sort, xatırlayıram birləşməsi, nəticədə Theta edir
teta müəyyən edilir n log n omega və böyük O eyni halda.
Həm n log n.
>> Omega var ki, bir şey nə var n və n kvadrat Ey?
Bəli, yenə var çox mümkün cavab.
Burada biz bubble növ demək nə.
Durub sort da burada işləmək olardı.
Ki, bubble sırala saxla ki, optimallaşdırma harada var,
Siz əldə edə bilərlər, əgər bütün siyahısı
nə qoymadan Hər hansı bir svopları, sonra, yaxşı,
biz dərhal qayıda bilər siyahısı ilə başlamaq sıralanır edilib.
, Ən yaxşı halda belə n yalnız omega var.
Yalnız bir gözəl deyilsə ilə başlayacaq siyahısı sıralanır
sonra biz n O mübadiləsi kvadrat var.
Və nəhayət, biz seçim sort var n kvadrat üçün, omega və böyük O. həm də
>> Sual 21.
Tam daşqın nədir?
Yaxşı daha, daha əvvəl bənzər, biz yalnız finitely çox bit
tam təmsil, belə ki, bəlkə 32 bit.
Biz imzalanmış tam var deyirlər.
Sonra nəticədə ən yüksək müsbət sayı təmsil edə bilər
2 üçün 31 minus 1.
Biz cəhd nə olur sonra tam arttırmayı?
Yaxşı, biz 31 2 getmək olacaq minus 1, aşağı mənfi 2, bütün yol
31 üçün.
Belə ki, bu, tam daşqın Siz incrementing saxlamaq zaman,
və nəticədə siz bilməzsiniz hər hansı bir ali və yalnız almaq
geri bütün yol wraps mənfi dəyər ətrafında.
>> Bir bufer daşqın haqqında nə?
Belə ki, bir bufer overflow-- bufer nə xatırlayıram.
Bu yaddaş yalnız bir yığın var.
Bir sıra kimi bir şey bufer.
Belə ki, bir bufer daşqın zaman Siz yaddaş daxil olmaq üçün cəhd edin
ki, serialın sonunda kənara.
Əgər varsa, belə ki, ölçüsü 5 və sizin array
array bracket daxil olmaq üçün cəhd edin 5 və ya bracket 6 və ya bracket 7,
kənarda və ya bir şey son, və ya hətta bir şey
below-- array bracket mənfi 1-- o bütün bufer daşqınlar var.
Siz pis yollarla yaddaş toxunan edirik.
>> Sual 23.
Sizə lazım bu bir So strlen həyata keçirmək.
Və biz siz ki, sizə s null olmayacaq güman,
belə ki, yoxdur null üçün hər hansı çek yoxdur.
Və çox yolları var Bu həyata bilər.
Burada biz yalnız sadə almaq.
Biz n, bir counter ilə başlayın. n orada nə qədər çox simvol hesablanması.
Belə ki, biz sonra 0 başlamaq, və bütün siyahısı üzərində təkrarlamaq.
>> Bu bərabər s bracket 0 null terminator xarakter?
Biz aradığınız saxla null terminator xarakter
bizim string necə uzun müəyyən etmək üçün.
Ki, ləğv etmək niyyətindədir hər hansı müvafiq string.
Belə ki, s bracket bərabər 0 null terminator üçün necə?
Bu deyil, onda biz olacaq s bracket 1, s bracket 2 baxmaq.
Biz qədər davam null terminator tapa bilərsiniz.
Biz bunu gördük, sonra n ehtiva simli ümumi uzunluğu,
və biz yalnız ola bilər.
>> Sual 24.
Belə ki, bu bir olduğu ticarət off etmək lazımdır.
Belə ki, bir şey bir yaxşı , lakin nə yol yol pis?
Belə ki, burada, sort üçün çalışır bubble sırala daha sürətli ola bilər.
Orada yaxşı that-- dedi edərək Çox Cavab burada.
Amma əsas biri olduğunu bubble sort bir sorted siyahısı üçün n omega edir.
>> Biz yalnız əvvəllər gördüm ki, masa unutmayın.
Belə ki, bubble omega növ n, ən yaxşı ssenari
yalnız artıq getmək edə deyil Bu liste müəyyən
hey bu şey artıq sıralanır, və qaytarılması.
Olursa olsun, birləşmə sort nə siz, n log n omega edir.
Sorted siyahısı üçün, bubble belə sort sürətli olacaq.
>> İndi siyahıları nə haqqında bağlıdır?
Belə ki, bir bağlı siyahı inkişaf və shrink lazım kimi çox elementləri uyğun.
Belə that-- dedi edərək adətən birbaşa müqayisə
bağlı olacaq bir sıra ilə sıralamaq.
Belə ki, seriallarda, baxmayaraq asanlıqla inkişaf və shrink
kimi bir çox elementləri uyğun lazım, bir bağlı siyahı
bir array an müqayisədə array təsadüfi çıxışı vardır.
Biz hər hansı bir daxil indeksi bilərsiniz serialın xüsusi element.
>> Belə ki, bir bağlı siyahı üçün, biz bilməz yalnız beşinci element getmək,
Biz əvvəldən axır var biz beşinci element almaq qədər.
Və bizi qarşısını almaq olacaq ikili axtarış kimi bir şey edir.
Ikili axtarış danışan, ikili axtarış xətti axtarış daha sürətli olmaq üçün çalışır.
That-- dedi edərək belə ki, bir mümkün şey
Siz ikili edə bilməz ki, bağlı siyahıları axtarış,
yalnız seriallarda bunu edə bilərsiniz.
Amma yəqin ki, daha əhəmiyyətlisi, Siz ikili axtarış edə bilməz
sıralanır deyil ki, bir sıra edir.
Upfront sort lazımdır Bu array, yalnız və yalnız sonra bilər
Siz ikili axtarış.
Sizin şey deyil əgər Belə ki, ilə başlamaq sorted,
sonra xətti axtarış daha sürətli ola bilər.
>> Sual 27.
Belə ki, aşağıdakı proqram hesab, növbəti slayd olacaq.
Bu biz olduğunuz bir aydın etmək istəyirəm olacaq
müxtəlif dəyişənlər üçün dəyərlər.
Belə ki baxaq.
>> Belə bir xətt.
Biz int x 1 bərabərdir.
Ki, baş ki, yalnız bir şey var.
Belə ki, xətt bir, biz görmək bizim masa, y, a, b, və tmp bütün
blacked.
Belə ki, x nədir?
Yaxşı biz yalnız 1 bərabər müəyyən.
Və sonra, yaxşı, iki xətti biz y 2 üçün müəyyən edilir ki
və masa artıq Bizim üçün doldurulur.
Belə ki, x 1 və y 2-dir.
>> İndi line üç, biz indi istəyirik mübadilə funksiyası daxilində.
Biz nə dəyişdirmək üçün keçmək idi?
Biz işareti x keçdi b üçün, və işareti y.
Harada problem əvvəl ifadə x ünvanı
0x10 və y ünvanı 0x14 edir.
Belə ki, bir və b bərabərdir Müvafiq 0x10 və 0x14.
>> İndi line üç, x və y nə var?
Yaxşı, heç nə dəyişməyib Bu nöqtədə x və y haqqında.
Hətta onlar baxmayaraq əsas yığını çərçivəsində daxili,
Onlar hələ də eyni var dəyərləri əvvəl etdikləri.
Biz hər hansı bir yaddaş redaktə yoxdur.
Belə ki, x 1, y 2-dir.
Bütün hüquqlar.
Belə ki, indi biz bir ulduz bərabər int tmp bildirib.
Belə ki, xətt dörd, hər şey tmp istisna olmaqla eynidir.
Biz hər hansı bir dəyərlər dəyişməyib tmp başqa bir şey.
Biz ulduz bərabər tmp müəyyən edilir.
Ulduz nədir?
Yaxşı, bir xal x, Belə ki, bir ulduz 1 bərabər x gedir.
Belə ki, hər şey kopyalanır aşağı, və tmp 1 müəyyən edilir.
>> İndi növbəti line.
Star ulduz b bərabərdir.
Belə ki, xətt ilə five-- daha yaxşı, hər şey ulduz nə istisna olmaqla eynidir.
Ulduz nədir?
Bəli, biz yalnız ulduz x bildirib.
Beləliklə, biz bərabər star b x dəyişən edirik.
Star b nədir? y. y b xal.
Belə ki, ulduz b y.
Belə ki, biz, y x bərabər müəyyən edirik və başqa hər şey eyni.
X indi ki, biz növbəti sıra görmək 2 və qalan yalnız aşağı kopyalanır.
>> İndi növbəti line, ulduz b tmp bərabərdir.
Bəli, biz yalnız ulduz b y olduğunu ifadə edərək, belə ki, biz tmp y bərabər müəyyən edirik.
Başqa hər şey eyni, hər şey aşağı kopyalanan olur.
Biz olan tmp bərabər y müəyyən edirik başqa bir, və hər şey eyni.
>> İndi nəhayət, line yeddi.
Biz geri əsas funksiyası istəyirik.
Svop başa sonra biz istəyirik.
Biz, b itirmiş, və tmp, lakin biz nəticədə
hər hansı dəyərlər dəyişir deyil bu nöqtədə bir şey,
biz yalnız x və y aşağı surəti.
Və biz x və y var ki, görəcəksiniz İndi 2 və 1 əvəzinə 1 və 2.
Mübadilə uğurla icra etmişdir.
>> Sual 28.
Karşılaşacağınız ki, düşünək Səhv mesajları
ofis saat ərzində aşağıda CA və ya TF gələn il.
Bu səhvlərin hər düzeltmek üçün necə məsləhət.
GetString Belə undefined istinad.
Niyə bu görmək bilər?
Yaxşı, bir tələbə istifadə olunur Onların kodu GetString,
Onlar düzgün cs50 daxil Hash var dot h CS50 kitabxana daxil.
>> Yaxşı, onlar nə Bu səhvi düzəltmək üçün lazımdır?
Onlar bir dash lcs50 nə etmək lazımdır Onlar tərtib etdiyiniz zaman command line.
Onlar keçmək yoxdur, əgər belə cingilti dash lcs50, onlar
faktiki var niyyətində deyil GetString həyata keçirir kodu.
>> Sual 29.
Dolayısı elan kitabxana funksiyası strlen.
Bu artıq, onlar yoxdur müvafiq hash həyata daxildir.
Bu xüsusi halda, header file onlar simli dot h daxil etmək lazımdır
və indi simli dot saat, o cümlədən İndi student-- compiler
Bu çıxışı var strlen və bəyanatlar,
və bilir kodunu ki düzgün strlen istifadə edir.
>> Sual 30.
Daha faizi dönüşüm data dəlilləri çox.
Belə ki, bu nədir?
Yaxşı bu faiz unutmayın ki onlar printf üçün müvafiq ne signs--.
Belə ki, printf biz percent-- bilər Biz bir şey çap bilər
faiz kimi i n backslash.
Yoxsa biz, yüzdə i kimi çap bilər kosmik, yüzdə i, kosmik, yüzdə i.
O hər So faiz əlamətləri, biz lazım
printf sonunda dəyişən keçmək.
>> Beləliklə, biz demək əgər printf paren faiz i, n yaxın paren backslash
də, biz istəyirik ki, tam çap olacaq,
lakin sonra biz printf keçmək yoxdur bir tam həqiqətən çap etmək.
Belə ki, burada daha çox faiz data dəlilləri çox dönüşüm?
Ki, biz ki var faizi bütün dəstə,
və biz kifayət qədər dəyişənlərin yoxdur həqiqətən o faizlə doldurun.
>> Və sonra mütləq, sual 31, mütləq bir blok 40 bayt itirdi.
Belə ki, bu Valgrind səhv edir.
Bu deyib haradasa kodu,
40 bir ayrılması var bytes böyük belə ki, 40 bayt malloced
və onu azad heç vaxt.
Yalnız lazımdır çox güman bir yaddaş sızıntısı tapmaq üçün,
və sizə lazım tapmaq yaddaş bu blok azad.
>> Və 32 sual ölçüsü 4 etibarsız yazmaq.
Yenə bu Valgrind səhv edir.
Bu nə yoxdur İndi yaddaş sızması ilə.
Bu demək likely-- ən, bu, deyil etibarsız yaddaş hüquqlarının bəzi sort.
Və çox güman ki, bu, bəzi bufer daşqın sort.
Harada bəlkə, bir sıra var bir tam array, və edək
Bu ölçüsü 5 var demək, siz array bracket 5 toxunmaq cəhd edin.
Ki, yazmaq üçün cəhd Belə ki, dəyəri yaddaş bir parça deyil
Siz həqiqətən etmək imkanı var ki, belə ki, bu səhv almaq olacaq,
ölçüsü 4 yalnış yazmaq deyərək.
Valgrind etdiyiniz tanımaq gedir uyğunsuz yaddaş toxunmaq çalışırıq.
>> Və quiz0 üçün var.
Mən Rob Bowden deyiləm, və bu CS50 edir.