-
IT café
Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz axioma #11374 üzenetére
Nem, ez nem fordítói jófejség, és nem csak a scanf-ben működik így, az egésznek mélyebb oka van. A char *ptr egy pointer, ahol a változó tartalma egy memóriacím, amire mutat. A változó értékét módosíthatod, és akkor egy másik memóriaterületre fog mutatni.
A char str[10] változó ezzel szemben ténylegesen azt a 10 byte-ot jelenti, amit lefoglalt számára a fordító, és nem változtathatod meg, hogy milyen memóriacímre mutasson. Tehát amíg ez legális: ptr=str, addig ez nem legális: str=ptr. De másként működik rájuk a sizeof is: sizeof(str)=10 lesz, nem pedig a pointer mérete (pl. 8).
Abban viszont tökéletesen egyetértünk, hogy nem jó gyakorlat a konkrét esetben &-tel használni, én sem szoktam, és nem is buzdítottam senkit erre. Ahogy írtad, egy kezdőnek az &input[0] a legbiztonságosabb forma.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Dell 5820: Intel Xeon W-2135, 64GB DDR4, 256GB NVMe SSD, Nvidia Quadro P600, USB 3.1 C/A, ÁFÁs
- Eladó alig használt benq Zowie xl 2411P kihasználatlanság miatt karcmentes, tökéletes állapotban
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S23 Ultra 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- iPhone 15 Pro Max 256GB