DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Wieder mal ein kleines C-Problem | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2002-09-01, 11:41 h Emufreak Posts: 74 User |
Hi. Ich kriege ein Beispielprogramm nicht zum laufen. Die untenstehende Funktion sollte es erlauben bequem und einfach einen Haufen Texte zu definieren. Der Compiler (GCC) liefert beim compilieren folgende fehler: -Arithmetic on Pointer to an incomplete Type -Dereferencing pointer to incomplete Type Die beiden Fehler kriege ich für alle Linien in der for-Schleife. Es muss irgend ein Pointerproblem sein. Aber ich kann echt nicht sagen wo. ....... struct TextAttr DefaultFont = { (STRPTR)"topaz.font", /* Fontname */ TOPAZ_EIGHTY, /* Size */ FS_NORMAL, /* Style */ FPF_ROMFONT /* Rom or Disk */ }; struct IntuiText DefaultText = { 1, 0, /* FrontPen, BackPen */ JAM2, /* DrawMode */ 1, 1, /* LeftEdge, TopEdge */ &DefaultFont, /* Font */ NULL, /* Text Pointer */ NULL /* NextText */ }; struct IntuiText AlleTexte[4]; ............. Make_Text(Anzahl, Texte, Struktur) int Anzahl; char *Texte[]; struct Intuitext Struktur[]; { int i; for (i=0;i<Anzahl; i++) { Struktur[i] = DefaultText; Struktur[i].Itext = (UBYTE *) Texte[i]; Struktur[i].NextText = &Struktur[i+1]; } Struktur[Anzahl-1].NextText = NULL; } [ - Answer - Quote - Direct link - ] |
2002-09-01, 13:26 h DariusBrewka Posts: 899 [Banned user] |
Vieliecht liegt das daran, das das IntuiText in MakeText falsch geschrieben ist? und auserdem verstehe ich nicht, warum du Struktur als Array übergibst und dennoch nur ein Element davon verwendest?, bzw kann man Arrays in dieser Art eigentlich übergeben (struct IntuiText Struktur[]), habe es so noch nicht probiert. [ Dieser Beitrag wurde von DariusBrewka am 01.09.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-09-02, 08:55 h Emufreak Posts: 74 User |
Peinlich es lag tatsächlich nur am IntuiText. Übrigens schmeisst es mir beim übernehmen des Listings ins forum immer die i-s in den eckigen klammern raus. Ist wohl irgendeine sicherheitsvorkehrung Na Ja vielleicht klappts ja so. Hier noch einmal die for-schleife for (i=0;i<Anzahl; i++) { Struktur = DefaultText; Struktur[ i ].Itext = (UBYTE *) Texte; Struktur[ i ].NextText = &Struktur[i+1]; } Struktur[Anzahl-1].NextText = NULL; } Ich glaube so machts mehr Sinn! Danke für die Hilfe. [ Dieser Beitrag wurde von Emufreak am 02.09.2002 editiert. ] [ Dieser Beitrag wurde von Emufreak am 02.09.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-09-02, 11:36 h mrbbc Posts: 101 User |
Zitat: Ja, das geht irgendwie ist aber potzdämlich; bei main() ist's ja auch so (int args, char* argv[]) oder so ähnlich. C kann aber AFAIK nicht char* als char[] auflösen - oder irgendeine derartige Bekrankung. [ - Answer - Quote - Direct link - ] |
2002-09-03, 11:46 h Emufreak Posts: 74 User |
Wie hättet ihr es denn geschrieben? struct Intuitext *Struktur[]; ? [ Dieser Beitrag wurde von Emufreak am 03.09.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-09-03, 11:59 h thomas Posts: 7718 User |
Nein, struct IntuiText *Struktur; Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Wieder mal ein kleines C-Problem | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |