Kezdőoldal » Számítástechnika » Programozás » C-ben változó memóriacímének...

C-ben változó memóriacímének lekérdezését lehet más módon implementálni?

Figyelt kérdés

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!!!



2014. jan. 18. 19:04
 1/7 anonim ***** válasza:

Tudtommal nem.

De sokkal jobban érdekelne, szinte éget a kíváncsiság, hogy ez neked minek kell.

2014. jan. 18. 20:14
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

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?

2014. jan. 18. 21:04
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

második:


cseles, de egy helyre akkor is kell:/

2014. jan. 18. 22:06
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:

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!

2014. jan. 18. 23:59
 5/7 anonim ***** válasza:
Ne a kódot tedd ki, hanem a feladatot. Vagy küldd el privátban, nem fogom kirakni ide, csak visszaküldöm neked a megoldást.
2014. jan. 19. 14:46
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

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!

2014. jan. 19. 18:37
 7/7 anonim ***** válasza:

É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?

2014. jan. 19. 18:41
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!