Servus!
Wenn wir schon dabei sind: was ist eigentlich der Unterschied zwischen diesen beiden Varianten?
a) pointer declaration / ohne &
Code:
void blubb(object *o)
{
printf("hello %s", o->irgendwas);
}
[...]
object *o = object_new();
blubb(o);
a) pointer declaration / ohne &
Code:
void blubb(object o)
{
printf("hello %s", o->irgendwas);
// nebenbei:
// bin mir grad nicht sicher, ob das so funktioniert
// oder ob man o hier gar nicht über den -> ansprechen kann
}
[...]
object o;
object_new(&o);
blubb(&o);
Also zunächst: welche Variante ist üblicher? Wann nimmt man welche? Ich hab' den Eindruck, dass ich bei Lib1 zu Variante a gezwungen werden, von Lib2 aber zu Variante b. Jetzt bin ich verwirrt, welche ich in meinem Code benutzen sollte.
Naja und falls die Sache über dem Kommentar in Variante b nicht klappt, also wenn ich dort o nicht über -> ansprechen kann, dann stellt sich mir die Frage: wie mach ich das hier am geschicktesten? Klar könnte ich mir so behelfen:
Code:
object *o_pointer = &o;
printf("hello %s", o_pointer->irgendwas);
Aber das wäre ja wohl quatsch ...oder?
Lesezeichen