"error: base operand of `->' is not a pointer" oder: "NULL-Peilung"
-
Hallo zusammen!
Ich bin was das Programmieren angeht ziemlich unbedarft, und stocke regelmäßig an Banalitäten wie Komma statt Semikolon. Ich hoffe hier kann mir jemand weiterhelfen.
Ich mühe mich also gerade durch FLTK womit ich ein kleines Programm für mein Studium schreiben möchte. Dazu experimentiere ich noch mit den verschiedenen Widgets, um letztendlich den Code, der schon in der Kommandozeile läuft, formschön in ein Fenster zu platzieren.
Nun quittiert mir MinGW Studio meinen Buildversuch mit:
simpel.cxx: In function `int main(int, char**)': simpel.cxx:149: error: base operand of `->' is not a pointer
das betroffene stück Quellcode schaut so aus:
146 Fl_Text_Buffer *buff = new Fl_Text_Buffer(); 147 Fl_Text_Display *disp = new Fl_Text_Display(20, 230, 600, 140, "Text Display"); 148 disp->buffer(buff); 149 win->resizable(disp);
Also irgendwie soll da wohl irgendwo ein Pointer hin, wo gerade keiner ist. Aber ich schnall einfach nicht wohin. Kurios: In einem anderen Fall läuft das Konstrukt so wie es ist ohne die kleinste Meldung.
Hat jemand eine Idee?
-
Zur Info:
Der funtkionierende Code aus einer anderen Anwendung:Fl_Text_Buffer *buff2 = new Fl_Text_Buffer(); Fl_Text_Display *disp2 = new Fl_Text_Display(20, 120, 640-40, 300-40, "Ausgabe"); disp2->buffer(buff2); w->resizable(disp2);
"w" bzw. "win" ist in beiden Fällen als globale Variable vom Typ char deklariert.
-
freerik schrieb:
"w" bzw. "win" ist in beiden Fällen als globale Variable vom Typ char deklariert.
Das kann beim besten Willen nicht sein! Ein "char" ist integraler Typ und garantiert keine Klasse, hat also selbst keine Memberfunktionen. Wenn "w" und "win" vom Typ char sind dürfte auch das andere nicht kompilieren.
Ich denke eher, dass in deinem nicht funktionierenden Beispiel das "win" kein Pointer ist. Also sollte
win.resizable(disp);
funktionieren.´
-
Danke für den Hinweis!
"w" bzw "win" sind tatsächlich falsch deklariert, bzw hat in der Form gar keine Funktion. (Ich weiß noch nicht wirklich was ich da tue.)
Trotzdem verwundert mich, dass es in einem Fall funktioniert, in einem anderen nicht.