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中沒有任何方法)。在C中實現Realloc
我的重新分配函數在我的系統上正常工作 我們如何獲得由malloc()分配的內存大小。
如果先前分配的內存大小大於新的要求,我們還可以在就地重新分配嗎?
您的總體目標是什麼?你只是重寫'realloc'或者你想創建一整套內存分配例程嗎? –