>> SPEAKER 1: Nézzük most fix hogy az utolsó program.
És most, most kifejezetten osztja néhány, amelyben a memória
felhasználó által megadott tárolásra kerül.
Ehhez hadd élesíteni az első kódsort, ahol kijelentette, s
korábban, hogy egy char csillag.
Ezúttal nézzük újra kijelentik az alábbiak szerint -
char s konzol 16, például, záró zárójel.
>> Más szóval, hadd kijelentem s hogy nem már nem lehet a címét egy karaktert,
hanem egy sor 16 karakter.
Ily módon, a felhasználó beírhatja az akár 15 karakterek és még teret
null terminátor.
Nézzük folytassa a Mentés Compile, és futtassa ezt a programot.
Legyen scanf2 dot perjel scanf2.
Nézzük most írjon be egy karaktersorozatot, mint a hello, és mi megköszönte a Hello.
>> Nos, van még egy probléma.
Én csak gépelt hello, amely csak öt karakter, plusz 1 a null
terminátor.
Ez hagy minket csak szükség a hat bájt.
>> De sajnos, csak kiosztott 16 összesen.
Tehát, ha a felhasználó valóban típusok 16 karaktereket, vagy a 17, vagy a több száz
karakter, még mindig nem fog Van elég hely a memóriában a
felhasználó bemenet.
És valóban, ez az, ami egyre felhasználói így
általában nehéz.
És valóban, ez az, amiért végre A GET sztring függvény az első
helye a CS50 könyvtárban -
hogy kitaláljuk, hogyan kell kezelni azokat a helyzetekben, amikor a felhasználó típusok
több karakter, mint mi azt eredetileg várták.
>> Őszintén szólva, nem teljesen újraírása a program,
nincs tiszta megoldás.
Inkább, amit kellett volna tennie, hogy egy karaktert a felhasználó egy olyan
idő, újra és újra.
És minden ponton, ha rájövünk, mi vagyunk a memória, mi lett volna a
Ezen a ponton vissza és újraelosztása még több memóriát, másolja a felhasználó
előző bemenet az első darab memória az új,
nagyobb darab memóriát.
Majd ismételje meg a folyamatot újra és ismét, amíg a felhasználó történik nyújtó
ő bemenet.