RicardasSim icon

realloc, memmove

RicardasSim | PRO | 07/06/19 12:13:08 PM UTC | 0 ⭐ | 646 👁️ | Never ⏰ | []
C |

920 B

|

None

|

0 👍

/

0 👎

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int main()
{
 
    int *arr;
    int *tmpArr;
    unsigned int i;
   
    arr = malloc(10*sizeof arr[0]);
    
    if(!arr)
    {
        printf("memory allocation error.\n");
        return 1;
    }
    
    for(i=0; i<10; ++i)
    {
        arr[i] = i;
        printf("%d ",arr[i]);
    }
 
    printf("\n");
    
    memmove(arr, arr+2, 8*sizeof arr[0]);
    
    for(i=0; i<10; ++i) printf("%d ",arr[i]);
    
    printf("\n");
    
    tmpArr = realloc(arr,8*sizeof arr[0]);
    
    if(!tmpArr)
    {
        printf("memory reallocation error.\n");
        free(arr);
        return 1;
    }
    
    arr = tmpArr;
    
    for(i=0; i<8; ++i) printf("%d ",arr[i]);
    
    printf("\n");
    
    
    free(arr);
    
    return 0;
}
 
/*
 
output:
 
0 1 2 3 4 5 6 7 8 9 
2 3 4 5 6 7 8 9 8 9 
2 3 4 5 6 7 8 9
 
*/

Comments