Implementación de Realloc en 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;

}

He implementado mi propio realloc, y para obtener el tamaño de la memoria asignada usando malloc (sin embargo, sé que no hay ningún método para esto en c).

Mi función de reasignación está funcionando bien en mi sistema ¿Cómo obtenemos el tamaño de la memoria asignada por malloc ()?

¿También podemos realizar una reasignación in situ si el tamaño de la memoria asignada anteriormente es mayor que la nueva requerida?

Respuestas a la pregunta(3)

Su respuesta a la pregunta