- This wiki is out of date, use the continuation of this wiki instead
Realloc
From FenixWiki
Contents |
[edit] Definition
VOID POINTER realloc ( <VOID POINTER data> , <INT size> )
Resizes the given block of memory.
It allocates a new block of memory, copying the old data. If the new size is smaller than the old size, the last part of the data is lost. If the new size of the block of memory requires movement of the block, the old memory block is freed.
[edit] Parameters
| VOID POINTER data | - Pointer to the block of memory to be resized. |
| INT size | - The new size of the block of memory in bytes. |
[edit] Returns
VOID POINTER : Pointer to (the first element of) the newly allocated memory block.
[edit] Errors
| Insufficient memory | - There is insufficient memory available. This error doesn't occur often. |
[edit] Example
Program example;
Private
byte pointer pbyte;
byte pointer pbyte2;
int elements = 10;
int newelements = 15;
int i;
Begin
// Allocate memory
pbyte = alloc(elements);
// Set them to 13
memset(pbyte,13,elements);
// Relocate it to a larger, newly made memory block
pbyte2 = realloc(pbyte,newelements);
// Set the added part's elements to 16 (newelements > elements)
memset(pbyte+elements,16,newelements-elements);
// Show numbers
for(i=0; i<newelements; i++)
say("byte2["+i+"] = " + pbyte2[i]);
end
Repeat
frame;
Until(key(_esc))
// Free the used memory
free(pbyte2);
End
Used in example: alloc(), memset(), realloc(), say(), free(), pointer
| Memory Functions | |
| • Alloc() • Free() • Memcmp() • Memcopy() • Memory_free() • Memory_total() • Memset() • Memsetw() • Realloc() • | |
