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.


Anmelden zum Antworten