- This wiki is out of date, use the continuation of this wiki instead
Realloc
From FenixWiki
Contents |
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.
Parameters
| VOID POINTER data | - Pointer to the block of memory to be resized. |
| INT size | - The size of the to be allocated memory. |
Returns
VOID POINTER : Pointer to (the first element of) the newly allocated memory block.
Errors
| Insufficient memory | - There is insufficient memory available. This error doesn't occur often. |
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
Loop
frame;
End
End
