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() 分配的内存大小。
如果先前分配的内存大小大于新的要求,我们是否可以就地重新分配?