C-ben változó memóriacímének lekérdezését lehet más módon implementálni?
Normális esetben sima C nyelven egy változó címének a lekérdezése (ugyebár):
int VAR = 123;
printf("Address of VAR : %p", &VAR);
/* változó memóriacíme : &VAR */
Nos, a kérdés, hogy ezt lehet e másféleképp is elvégezni, mégpedig a '&' jel nélkül ?! - gondolhatnék itt assembly tagok felhasználására, stb.
Eléggé érdekel a dolog! Én magam inline-assembly-vel próbálkoztam, de mivel sem a C ezen lehetőségéhez, sem a rendes assembly-hez nem értek igazán, ez sajna nem ment. A LEA és LEAL parancsokkal próbálkoztam, de vagy nem fordult, vagy teljesen más értéket adott vissza. :(
Ha valaki mutatna erre egy, a fentieknek megfelelő más és működő alternatívát a feladatra C nyelvi kódban, azt NAGYON-NAGYON MEGKÖSZÖNNÉM!!!
Tudtommal nem.
De sokkal jobban érdekelne, szinte éget a kíváncsiság, hogy ez neked minek kell.
int *int_ptr;
Nem kell több címképző & operátor, viszont ha az értéke érdekel, most minden esetben kell a * operátor. Így most már jobb?
második:
cseles, de egy helyre akkor is kell:/
A harmadiknak igaza van! : csillagokkal már én is próbáltam trükközni, de úgy nem megy.
Egyébként ha tényleg érdekel, hogy engem miért érdekel, akkor ki fogom tenni a kódot, DE, csak miután választ találtam (valakinek a kommentjében) a kérdésemre - erre írásban szavamat adom!!! :D
Egyébként egy trükkös feladatnak a trükkös megoldásához kell, amiben már ezt leszámítva mindennel végeztem, csak ez a része nyitott... :/
Erős a gyanúm, hogy inline-assembly a megoldás nyitja, amit így igaz, minden változóra le kéne futtatni - és max. talán makró-ként lehetne leegyszerűsíteni az "előhívását"..... de sajnos, a próbálkozásaimból leszűrve is, én magam nem látom át ennyire a gépi kódot; viszont azt gondolnám, hogy az assembly-ben is csak lehet valahogy nyomon követni és lokálisan lekérdezni egy memóriacímet érték alapján.
Egy szó, mint száz, aki ért az assembly-hez, és tudja a feladathoz a pontos C-s inline-assembly szintaxisát, ha mással nem is, egy + pontal jutalmaznám segítségnyújtását!
4.: Gondolom arra gondoltál, hogy ha nem is lehet a memóriacímlekérdezést másképp csinálni, a feladat megoldására >esetleg< van más módszer, amivel magát a memóriacím lekérdezés szükségességét lehet megkerülni. Nemde?
Nos, es a sejtés nagy szerencsémre bevált, ugyanis sikerült - igaz, kisség gányoltabb módon - de más algoritmussal kihozni az eredményt! :D
Bye!
Én értem, hogy örülsz, de még mindig roppant kíváncsi vagyok arra, hogy melyik az az eset, amikor ugyan address-t szeretnénk kinyerni, de nem jó az & operátor.
Miért kell hatszor megkérni rá, hogy mondd el, mi volt a feladat?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!