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() によって割り当てられたメモリのサイズを取得するにはどうすればよいですか。
また、以前に割り当てられたメモリのサイズが新しく必要なサイズよりも大きい場合、インプレース再割り当てを行うことはできますか?