ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Wieder mal ein kleines C-Problem | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
01.09.2002, 11:41 Uhr Emufreak Posts: 74 Nutzer |
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; } [ - Antworten - Zitieren - Direktlink - ] |
01.09.2002, 13:26 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
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. ] [ - Antworten - Zitieren - Direktlink - ] |
02.09.2002, 08:55 Uhr Emufreak Posts: 74 Nutzer |
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. ] [ - Antworten - Zitieren - Direktlink - ] |
02.09.2002, 11:36 Uhr mrbbc Posts: 101 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
03.09.2002, 11:46 Uhr Emufreak Posts: 74 Nutzer |
Wie hättet ihr es denn geschrieben? struct Intuitext *Struktur[]; ? [ Dieser Beitrag wurde von Emufreak am 03.09.2002 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
03.09.2002, 11:59 Uhr thomas Posts: 7718 Nutzer |
Nein, struct IntuiText *Struktur; Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Wieder mal ein kleines C-Problem | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |