struct führ mehrere c dateien verwenden

maxhd2

Grünschnabel
ich hab in einer .h eine strucht definiert und will sie mehreren c dateine zugänglich machen.
und seitdem bekomm ich nur mehr sinnlose fehlermelungen:

Code:
21 //scanner.h two or more data types in declaration of `scanfile' 
int scanfile(char fname,int l, struct Data *filedata1);
wtf? darf man seit neuestens einer methode nur mehr einen parameter übergeben?

Code:
//42 main.c [Warning] passing arg 1 of `scanfile' makes integer from pointer without a cast 
int main(int argc, char *argv[])
{
 struct Data *filedata1;
 int l=111;
 filedata1=(struct Data *) calloc(l,sizeof(struct Data));

 if (argc <1) exit(1);
  scanfile(argv[1],l,filedata1);
was passt da beim pointer wieder nicht? ich will da nur das erste argument übergeben.

EDIT: hat sich erledigt, hab ein ; beim struct vergessen, hab mich zusehr auf die fehlermeldung fixiert.
 
Zuletzt bearbeitet:
Code:
21 //scanner.h two or more data types in declaration of `scanfile' 
int scanfile(char fname,int l, struct Data *filedata1);
wtf? darf man seit neuestens einer methode nur mehr einen parameter übergeben?

Versuch doch mal das Wort "struct" bei der Parameterübergabe weg zu lassen ;)
Code:
int scanfile(char fname,int l, Data *filedata1);
Das "Data" ein "struct" ist weiß der Compiler doch...

MfG Turri
 
Versuch doch mal das Wort "struct" bei der Parameterübergabe weg zu lassen ;)
Code:
int scanfile(char fname,int l, Data *filedata1);
Das "Data" ein "struct" ist weiß der Compiler doch...
Falsch. Ein C Compiler kennt den Datentyp "Data" da nicht. Einem C Compiler ist nur der Datentyp "struct Data" bekannt.

@maxhd2: Der Typ des ersten Parameters deiner Funktion ist "char" - also ein einzelnes Zeichen. Du versucht allerdings ein Argument vom Typ "char*" zu übergeben - also einen Zeiger auf eine Zeichenkette.

Mach am besten mal ein vollständiges (minimales) Beispiel - vor allem zeig mal deine .h Datei.

Gruß
 
Zurück