Hallo,
wie kann ich die Adresse einer Strukturkomponente herausbekommen?
Beispiel:
struct mystruct
{
int test1;
int test2;
} dummy;
Ich möchte die Adresse von
dummy.test1
beim Aufruf einer Funktion übergeben.
Wenn ich folgendes hätte:
int test1;
wäre der Aufruf so:
void myfunc (\*int);
[...]
myfunc(&test1);
Aber wie mache ich das bei dem
dummy.test1?
Danke für jeden Hinweis,
Crypto.
Hi,
void myfunc (*int);
[…]
myfunc(&test1);
Aber wie mache ich das bei dem
dummy.test1?
&dummy.test1
liefert einen Pointer auf int.
Die Signatur von myfunc muesste dann
void myfunc(int* p)
sein.
Gruss
norsemanna
Hi,
&dummy.test1
liefert einen Pointer auf int.
Die Signatur von myfunc muesste dann
void myfunc(int* p)
sein.
Gruss
norsemanna
Hallo,
es hat bestens funktioniert, vielen Dank.
Gruß,
Crypto.
Hallo norsemanna !
Deine Aussage ist völlig richtig, trotzdem empfehle ich bei solchen Konstruktionen immer Klammern zu setzen um die oft unklaren Bindungsgrenzen zu verdeutlichen bzw. zu setzen.
Es ist ein grosser Unterschied ob der Compiler hier &(dummy.test1) oder (&dummy).test1 interpretiert.
In diesem speziellen Fall ist es zwar eh eindeutig (bzw. das zweitere würde ja eine Sysntaxfehler liefern), aber schon bei &dummy->test1 wäre es nicht mehr so eindeutig, da wäre sowohl &(dummy->test1) als auch (&dummy)->test1 möglich und man müsste im Manual nachschauen was denn nun genommen wird.
mfg
Christof