Implementierung von Realloc in C

int getmin(int a, int b)
{
    return a<b?a:b;
}


void *reallocation(void *ptr, size_t size) //size_t in bytes
{

    void *newptr;


    int msize;
    msize = getsize(ptr);

    msize = getmin(msize, size);

        printf("msize = %d", msize);

    newptr = malloc(size);
    newptr = memcpy(newptr, ptr, msize);
    free(ptr);


    return newptr;

}

Ich habe meine eigene Realloc implementiert und um die Größe des zugewiesenen Speichers mit malloc zu ermitteln (ich weiß jedoch, dass es in c keine Methode dafür gibt).

Meine Neuzuweisungsfunktion funktioniert auf meinem System einwandfrei. Wie ermitteln wir die Größe des von malloc () zugewiesenen Speichers?

Können wir auch eine Inplace-Neuzuweisung durchführen, wenn die Größe des zuvor zugewiesenen Speichers größer ist als der neue erforderliche?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage