C++ : Pointerzuweisung klappt nicht
*jiriki*
- programmiertechnik
0 mbr
Hi, ich möchte in meinem C++-Proggi drei Farben in Form von drei Dreier-Arrays festlegen, und einen Pointer currentColor immer auf eine der drei zeigen lassen. HIerzu hab ich folgenden Code:
------------------------
[...]
typedef GLfloat CGColor3[3];
CGColor3 RED = { 0.5f, 0.0f, 0.0f };
CGColor3 GREEN = { 0.0f, 0.5f, 0.0f };
CGColor3 BLUE = { 0.0f, 0.0f, 0.5f };
CGColor3 *_currentColor;
_currentColor = &RED;
------------------------
Ich möchte den Pointer hier mit dem roten Farbton initialisieren, doch der Compiler beschwert sich und meint:
"error C2501: '_currentColor': Fehlende Speicherklasse oder Typspezifizierer
error C2040: '_currentColor': 'int' unterscheidet sich von 'CGColor3 (*)' in Bezug auf die Anzahl vorgenommener Dereferenzierungen
error C2440: 'Initialisierung': 'CGColor3 (*__w64 )' kann nicht in 'int' konvertiert werden"
Bin für jeden Hinweis dankbar, *Jiriki*
Hallo *Jiriki*
typedef GLfloat CGColor3[3];
CGColor3 RED = { 0.5f, 0.0f, 0.0f };
CGColor3 GREEN = { 0.0f, 0.5f, 0.0f };
CGColor3 BLUE = { 0.0f, 0.0f, 0.5f };CGColor3 *_currentColor;
_currentColor = &RED;
"error C2501: '_currentColor': Fehlende Speicherklasse oder Typspezifizierer
error C2040: '_currentColor': 'int' unterscheidet sich von 'CGColor3 (*)' in Bezug auf die Anzahl vorgenommener Dereferenzierungen
error C2440: 'Initialisierung': 'CGColor3 (*__w64 )' kann nicht in 'int' konvertiert werden"
Das sieht für mich stark danach aus, als ob du irgendwo eine #include Anweisung vergessen hast. Der Compiler weiß dann nicht, wie er mit dem Typ CGColor3 umgehen soll. Meist kommen dadurch dann noch etliche Folgefehler zustande (hab durchaus schon dreistellige Anzahl von Fehlermeldungen erlebt und nach includieren der einen nötigen Datei wars dann gut...)
Schau einfach mal, in welcher Datei CGColor3 deklariert wird.
Liebe Grüße
mbr
Nachtrag: Allerdings wundert mich schon, warum der Compiler anscheinend an dem typedef noch nichts auszusetzen hat. Allerdings kenne ich mich mit C++ nicht wirklich spitzenmäßig aus (sondern nur relativ gut ;-) ). Vielleicht kann dazu ja einer der Experten im Forum noch was sagen.