Problem mit Zeiger Rückgabe
-
Hallo,
hier mal ein Stück Code. Ich möchte gerne die Warnungen beheben.
Natürlich ist der Code nicht genau in dieser Reihenfolge, ohne "main" usw.zeile paramzeile[256]; typedef struct { char anlage[20]; int mpi; int wert; } zeile; zeile paramzeile[256]; while (fgets(buffer, sizeof(buffer), fp)) { if (buffer[0] == '#' || strlen(buffer) == 0) continue; /*Kommentar herausfiltern */ *(paramzeile[i].anlage) = strtok(buffer,";"); paramzeile[i].mpi = atoi(strtok(NULL,";")); paramzeile[i].wert = atoi(strtok(NULL,";")); i++; } fclose(fp);
Hier mault der Compiler mit der Warnung "Zuweisung erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
in der Zeile*(paramzeile[i].anlage) = strtok(buffer,";");
Warum, ich sehe es nicht ??
Es sind doch beides "char-Zeiger"Danke
worst_case
-
(paramzeile[i].anlage) ist ein char und strtok liefert einen char zurück.
btw:
1. Strings kopiert man mit strcpy.
2. du solltest die Rückgabe von strtok auf NULL überprüfen. Mit einer fehlformatierten Datei fliegt dir dein Programm um die Ohren.