Új hozzászólás Aktív témák
-
k.t.a.
senior tag
Ebben nincs semmilyen visszatérési érték sem, de nincs is rá szükség. Egyszerően a függvényedből egy globális változót modosítgatsz. Azért nem lehet stringet visszaadni értéknek, mert a string egy karakterre mutató pointer, és amikor ezt akarnád visszatérési értéknek adni, akkor csak egy olyan címet kapnál amin már nincsen semmi. Azért mert amit kiszámolsz a függvényedben az egy lokális változóban lenne tárolva, és ez törlődik amikor meghívod return-t. Ergo csak egy üres memória helyre mutató címet kapnál.
-
Jester01
veterán
Ezt a dinamikus dolgot nem tartom túl elegáns megoldásnak, mégha működik akkor sem.
Hát pedig nagyon sok minden így működik, még azzal is megspékelve, hogy nem is simán free-t kell rájuk hívni, hanem az api-ban van megfelelő felszabadítási párja.
Vagy valamit rosszul értek?
Minden bizonnyal. A konstansok ugyanis nem a veremben laknak, az teljesen jól működik.
MOD: Egyébiránt a te megoldásod 100%osan ekvivalens ezzel, hiszen te sem másoltad le a visszadott értéket. A lényegileg más megoldás az így nézne ki:
void f(char* buf) { strcpy(buf, "alma"); }
Na ez valóban a hívó által beadott területre ír. Persze itt célszerű átadni a puffer méretét is, a túlcsordulás elkerülése végett.
[ Szerkesztve ]
Jester
-
atm*RefeeZ
tag
ó értem gondoltam,hátha nem működnek oda-vissza a parancsok és akkor ugye csak c++ lehetne. na,amióta ide írkálok csupa hasznos dolgot tudok meg remélem a c#-hoz is ennyien értenek/értetek mert jövő félévben valószínűleg abba kell majd segíteni,ha tud olyat mondani a tanár amit használni kéne ugyan de el nem magyarázza (érthetően) köszönöm ismét
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!