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;
}
我已经实现了自己的realloc,并且为了使用malloc获得分配的内存的大小(但是我知道在c中没有任何方法).
我的重新分配功能在我的系统上正常工作我们如何获得malloc()分配的内存大小.
如果先前分配的内存大小大于新的所需内存,我们也可以进行内部重新分配吗?