amiga-news 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:
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.

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