>> SPEAKER 1: Ejja jikteb programm li gets string mill-utent mingħajr
jużaw il-Librerija CS50 jiffunzjonaw GetString.
Biex tagħmel dan, aħna ser imorru quddiem u l-użu scanf, il-funzjoni li l-GetString
funzjoni effettivament juża taħt il-barnuża.
Imma jien ser jagħmlu dan deliberatament b'mod Buggy.
Jien ser tagħmel b'mod li naħseb ikun ġust, iżda jirriżulta li
suppożizzjoni tiegħi għaddej biex pjuttost, pjuttost difettuż.
U fil-fatt, pjuttost perikolużi.
Minħabba bugs bħal dak li jien ser jagħmlu jistgħu jiġu sfruttati minn avversarji
tali li l-apparat tiegħek jew program tiegħek jista 'jittieħed potenzjalment.
>> Ejja tibda kif ġej.
Ewwel ejja tiddikjara string tagħna, inkella magħruf issa bħala stilla char,
u sejħa hija s.
Tikri l-utent għal string li jmiss fil-pront, kif ma "string jekk jogħġbok." U
ejja issa jiksbu l-sekwenza mill-utent jużaw scanf, kwotazzjoni unquote, "% s." Fil
kliem ieħor, ejja tinforma scanf li aħna do fil-fatt tistenna li tikseb string
mill-utent.
>> Imma issa għandna bżonn li tgħid scanf Ħaġa waħda oħra -
fejn tpoġġi l-sekwenza li l-utent jipprovdi.
Well, jien ser sempliċiment tibda ma 'comma s, li tispeċifika li nixtieq
scanf li jpoġġi l-string hemmhekk.
Jien jmiss ser jistampa xi ħaġa bħal printf "grazzi għall-% s
comma backslash n. "U kif dejjem, jien ser jgħaddu fil-sekwenza, s.
Issa ejja jiffrankaw, tiġbor, u run dan programm, u ara jekk aħna ma jistgħu jinduċu
l-problema I mbassra.
>> Agħmel scanf-1.
./scanf-1.
String jekk jogħġbok.
Ejja jipprovdi xi ħaġa simili, "bonjour." "Grazzi għall-null." Hmm, li mhux
dak Jien kont qed nistenna.
Allura x'inhu għaddej hawn?
>> Ukoll, jirriżulta għaliex aħna dikjarat i bħala stilla char iżda aħna ma
attwalment maħżuna s-indirizz ta ' blokki attwali tal-memorja, scanf ma
ikollhom kullimkien biex tpoġġi l-sekwenza li l-utent ittajpjat pulzieri
Tabilħaqq, jekk l-utent kellhom issa tip fil string ħafna itwal minn "hello,"
per eżempju diversi linji ta 'test jew diversi paragrafi ta 'test, huwa pjuttost
possibbli li nistgħu jinduċu hekk imsejħa tort segmentazzjoni.
>> Minħabba scanf mhix se tkun taf li I ma attwalment tqiegħed l-indirizz
ġewwa ta 's.
Pjuttost, huwa se tara xi valur fil-i, xi mudell ta 'bits li jista'
jkun tajjeb ħafna valur żibel, hemm biss b'kumbinazzjoni.
U scanf għadu għaddej biex tipprova tikteb l-sekwenza utent f'dak l-indirizz,
anki jekk huwa valur żibel, li tabilħaqq jista 'jinduċi crash.
>> Allura kif huma aħna se jiffissaw dan?