C++ : Pointerzuweisung klappt nicht
-
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*
-
mach deine typedefs sauber, dann hast solche verwirrungen nicht, lass das & vor RED weg
-
zu 1.) Was meinste genau?
zu 2.) Mit oder ohne spielt keine Rolle.Grüßle, *jiriki*
-
struct CGColor3 { GLfloat red, green, blue; }; 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;
-
Klappt leider trotzdem nicht. Fehlermeldungen jetzt:
(48): error C2040: '_currentColor': 'int' unterscheidet sich von 'CGColor3 *' in Bezug auf die Anzahl vorgenommener Dereferenzierungen
(48): error C2440: 'Initialisierung': 'CGColor3 *__w64 ' kann nicht in 'int' konvertiert werden
(48): error C2501: '_currentColor': Fehlende Speicherklasse oder Typspezifizierer
(168): error C2664: 'glColor3fv': Konvertierung des Parameters 1 von 'CGColor3 *__w64 ' in 'const GLfloat *' nicht möglich
(236): error C3861: '_currentColor': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefundenGrüßle, *jiriki*
-
CGColor3 is ein float oder????
struct CGColor3 { float red, green, blue; }; 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;kannst reinkopieren und es funzt
-
meinte GLfloat is ein float?
-
man könnte ja auch einfach mal in den entsprechenden Zeilen schauen ob man den Typ richtig verwendet
