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()分配的内存大小。
如果之前分配的内存大小大于新需求的内存大小,我们能否进行原地重新分配?
realloc
还是试图创建整套内存分配例程? - Gort the Robot