Wdrożenie Realloc w C
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;
}
Zaimplementowałem własny realloc i aby uzyskać rozmiar przydzielonej pamięci przy użyciu malloc (wiem jednak, że nie ma żadnej metody na to w c).
Moja funkcja realokacji działa poprawnie w moim systemie. Jak uzyskać rozmiar pamięci przydzielonej przez malloc ().
Czy możemy również dokonać realokacji w miejscu, jeśli wielkość wcześniej przydzielonej pamięci jest większa niż wymagana nowa?