- 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
						
			
		