Christian Kruse: (C) Zeigerproblem

Beitrag lesen

你好 Markus,

Die Funktion beinhaltet dann so etwas (wurde auch ohne * probiert):
*object_rect.x = x;
*object_rect.y = y;
*object_rect.w = width;
*object_rect.h = height;

Da bist du auf die Assoziativität reingefallen :) . hat eine größere
Assoziativität als *, so dass erst der .-Operator versucht wird aufzulösen
und danach erst das *. Das geht natürlich nicht.

Um aber auf Elemente einer Struktur, die man per Zeiger referenziert hat,
einfach zuzugreifen, gibt es den ->-Operator:

  
object_rect->x = x;  
object_rect->y = y;  
object_rect->w = width;  
object_rect->h = height;  

Der macht im Grunde nichts anderes als das hier:

  
(*object_rect).x = x;  
(*object_rect).y = y;  
(*object_rect).w = width;  
(*object_rect).h = height;  

再见,
克里斯蒂安

--
Die Stärke des Geistes ist unendlich, die Muskelkraft dagegen ist begrenzt.
http://wwwtech.de/