Hallo, habe folgendes Problem: Ich mache folgendes: int x; int *px; px = &x; UNd bekommen folgende Errors und Warnings: warning: data definition has no type or storage class warning: type defaults to 'int' in declaration of 'y' error: conflicting types for 'px' note: previous declaration of 'px' was here warning: initialization makes integer from pointer without a cast Sollte doch eigentlich funktionieren oder? Danke schon mal
Xentex schrieb: > Compiler spinnt Was täten wir nur ohne die ganzen Anfänger, die ständig die vielen Fehler in den Compilern finden? Die ganzen Profis würden dann auf ewig völlig verbugte Compiler benutzen müssen! Im Ernst: Mit solchen Aussagen macht man sich lächerlich. Und: In den geposteten 3 Zeilen liegt der Fehler nicht. Lies die Warnungen und Fehler nochmal genau durch! Die betreffen erstens eine Variable namens y (welche in den 3 Zeilen nicht vorkommt) und zweitens steht dort: > error: conflicting types for 'px' > note: previous declaration of 'px' was here Du hast px bereits vorher mit anderem Typ deklariert.
Geht doch
1 | void main (void) |
2 | {
|
3 | int x; |
4 | int *px; |
5 | |
6 | px = &x; |
7 | }
|
aber
1 | int x; |
2 | int *px; |
3 | |
4 | px = &x; |
bringt genau Deine Fehlermeldungen...
Sorry im Programm is es auch ein x musste das halt abtippen... Ist natürlich: int x; int *px; px = &x; aber das problem ist, dass selbst wenn ich Variablen benutze die ganz sich noch nie verwendet worden der Fehler bleibt... Habe mal int pferd; int *ppferd; ppferd = &pferd; versucht und funzt auch net... Das ist ja eben das merkwürdige
Xentex schrieb: > Hallo, > > habe folgendes Problem: > Ich mache folgendes: > int x; > int *px; > > px = &x; Einfach so, oder in irgendeinem Kontext? > UNd bekommen folgende Errors und Warnings: > > warning: data definition has no type or storage class > warning: type defaults to 'int' in declaration of 'y' Ein y kommt in deinem Code gar nicht vor. Sicher, daß die Fehlermeldung sich auf diesen bezieht? > error: conflicting types for 'px' > note: previous declaration of 'px' was here > warning: initialization makes integer from pointer without a cast Das sieht mir aus, als ob die Zuweisung nicht in einer Funktion steht. Dann würde ich genau diese Meldungen erwarten. > Sollte doch eigentlich funktionieren oder? Kommt drauf an. Wenn das genannte der komplette Inhalt der Datei ist, dann nicht. PS: Warum hast du dir eigentlich die Mühe gemacht, fein säuberlich alle Zeilennummern aus den Meldungen zu entfernen?
Bernhard M. schrieb: > aberint x; > int *px; > > px = &x; > > bringt genau Deine Fehlermeldungen... Richtig, wenn die Zuweisung außerhalb einer Funktion steht, kommen die selben Fehlermeldungen. Da dort nur Deklarationen* stehen dürfen, versucht der Compiler das als solche zu verstehen. *Ja, genaugenommen auch Definitionen. Aber auf jeden Fall keine Anweisungen.
Klaus schrieb: > Bernhard M. schrieb: >> aberint x; >> int *px; >> >> px = &x; >> >> bringt genau Deine Fehlermeldungen... > > Richtig, wenn die Zuweisung außerhalb einer Funktion steht, kommen die > selben Fehlermeldungen. Da dort nur Deklarationen* stehen dürfen, > versucht der Compiler das als solche zu verstehen. > > > *Ja, genaugenommen auch Definitionen. Aber auf jeden Fall keine > Anweisungen. Und ich vermute er hat es genau so gemacht...
Danke euch hatte doch tatsächlich beim kopieren der Funktion den Funktionskopf vergessen ....
Xentex schrieb: > Danke euch hatte doch tatsächlich beim kopieren der Funktion den > Funktionskopf vergessen .... Und was lernen wir darauf? In 99,999% der Fälle ist nicht der Compiler der Trottel =)
Ja is mir schon klar... aber war halt echt am verzweifeln arbeite schon seit mehreren Wochen an dem Projekt und gab auch nie Probleme und jetzt funktioniert auf einmal son blöder Pointer nicht :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.