Win soros port/file megoldódott, Köszi

Istvan Vomberg vomberg at chemotron.hu
Tue Jul 18 21:34:55 CEST 2006


2006. 07. 18, kedd keltezéssel 19.18-kor Pipi ezt írta:
> Szerintem ez nem igaz, nézd meg a C függvényeket,
> az összes stringkezelő függvény gyakorlatilag kétszer van meg, egyszer a null terminált stringekre,
> másszor meg ahol a string hosszát is megadod.

Nem-nem... a C-ben NULL terminált string van, amire te gondolsz az az,
hogy megadhatsz egy maximális másolási hosszat, amivel a
puffertúlcsordulást lehet megakadályozni. De az esetben is ellenőrizned
kell, hogy mi történt a másolásnál, rendben zárult-e vagy
"vészleállással".

> A C-ben és a basicben tipikusan  bármilyen karaktert berakhatsz a stringbe,
> aki majd feldolgozza az dönti el, hogy hogyan értelmezi a string tartalmát,
> a benne lévő esetleges nullákat, kódokat.

Megint csak nem, __stringbe__ a C-ben ugyan írhatsz nullát, de az a
könyvtári függvényeknél terminálást fog jelenteni.

> A basic belül külön tárolja a string hosszát. A C nem tárolja egy string hosszát,
>   arrol a felhasználónak kell gondoskodni

Megint csak nem, a 0-át a string-kezelő függvények odabiggysztik a
végére.

------------------

Nálad az lehet a probléma, hogy mivel a BASIC fordító is C-ben készül,
bennemaradt egy olyan string copy a függvénynél a fordítás során, ami
NULL terminálással viszi át a stringet, azaz __fordító_hiba__, le kéne
adnod hibajelentésnek.



More information about the Elektro mailing list