free makes pointer from Integer without a cast



  • Hallo zusammen 🙂

    Arbeite erst seit kurzem mit C und stoße momentan auf einen Fehler den ich nicht nachvollziehen kann.
    Wäre schön wenn mir jemand behilflich ist!

    unsigned int x = (lengthFile1/N)+1, y = (lengthFile2/N)+1;
    globM **Mglob = (globM**) malloc(x*sizeof(*Mglob));
    unsigned int l;
    for(l=0; l<x; l++)
    {
        Mglob[l] = (globM*) malloc(y*sizeof(globM));
    }
    

    lenghtFile1,lengthFile2 und N sind vom Typ unsigned int.
    Soweit funktioniert auch alles noch. Der Fehler tritt erst an folgender Stelle auf:

    unsigned int i3;
    for(i3 = 0; i3 < x; i3++)
        free(Mglob[i3]);
    free(Mglob);
    

    Die genaue Fehlermeldung lautet:
    "warning: passing arg 1 of 'free' makes pointer from integer without a cast"

    Ich hoffe jemand weiß Rat 🙂
    Gruß eightball



  • Dir fehlt #include <stdlib.h>. Das wäre auch svhon vorher aufgefallen, wenn Du nicht den Rückgabewert von malloc unnötigerweise casten würdest.


Anmelden zum Antworten