>> HIZLARIA 1: Dezagun idazteko programa bat da kate bat jasotzen du erabiltzaileak gabe
CS50 Library en erabiliz GetString funtzionatu.
Horretarako, aurretik joan beharko dugu eta erabili scanf, funtzioa GetString du
funtzioa benetan erabiltzen kanpaia azpian.
Baina nik hau nahita egin dut buggy modu batean.
Dela uste dut, modu batean egin dut eskubidea izango litzateke, baina bihurtzen da
nire hipotesi Honez joan nahiko, nahiko zuzena izan.
Eta hain zuzen ere, oso arriskutsua.
Delako bat naiz zorian dut atsegin bugs egin beharreko aurkariek ustiatu ahal
hala nola, zure makina edo zure programa hartu ahal baino gehiago izan daitezkeen.
>> Dezagun honela hasten.
Lehenengo dezagun aldarrikatu gure katea, bestela, gaur egun ezagutzen char izar baten gisa,
eta deitu s.
Lets ondoan kate erabiltzaileari galdetuko, gertatzen den moduan "katea mesedez." Eta
dezagun katea lortuko en orain erabiltzaileari scanf aurrekontua unquote, "% s." erabiliz, Urtean
Beste era batera esanda, dezagun dizugu scanf ez hain zuzen ere, espero kate bat lortzeko
erabiltzaileari from.
>> Baina orain scanf kontatzeko behar dugu beste gauza bat -
non katea jarri nahi duten erabiltzaileari eskaintzen.
Beno, noa izateko nahiko besterik gabe hasiko koma s, zehaztuz duten Nahi dut
katea jarri scanf han.
Hurrengo naiz zerbait inprimatu joan bezalako printf "for the% s esker
backslash n koma. "Eta beti bezala, naiz hemen katea, z pasatzen joatea.
Orain dezagun gordetzea, biltzea, eta hau exekutatu programa, eta ikusi ahal izango dugu, ez bada bultzatu
arazoa iragarri dut.
>> Egin scanf-1.
./scanf-1.
Katea mesedez.
Dezagun ematen, antzeko zerbait "kaixo". "Null Eskerrik asko." Hmm, hori ez da
zer espero dut.
Beraz, zer gertatzen da hemen?
>> Beno, bihurtzen da deklaratu dugulako s char izar bat bezala, baina ez genuen
benetan z baten helbidea gordetzen benetako memoria zatia, scanf ez
izan edonon katea jarri duten idatzi sartu erabiltzailea
Izan ere, orain arte idatzi erabiltzaileari balira "kaixo", katea baino askoz luzeagoa
esate baterako lerro batzuk edo testua hainbat paragrafotan, nahiko da
Posible liteke bultzatu dugu bat deiturikoak segmentaziuo hutsegitea.
>> Scanf ez delako ezagutzen joan Ez dut benetan jarri helbide bat
ren barruan.
Hobeto esanda, balio batzuk ikusteko da joan s, eredu batzuk bit duten may
Oso ongi zabor balio bat izan behar du, Ba besterik gabe, kasualitatez.
Eta scanf da oraindik idatzi saiatzeko joan Erabiltzaileak helbide horretara katea,
zabor-balio bat, bada ere horrek dezake, hain zuzen ere hutsegite bat bultzatu.
>> Beraz, nola ari gara hau konpondu egingo da?