amiga-news 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:
Original von DariusBrewka:
kann man Arrays in dieser Art eigentlich übergeben (struct IntuiText Struktur[]), habe es so noch nicht probiert.


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.
.