RicardasSim

realloc, memmove

Jul 6th, 2019
675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. int main()
  7. {
  8.  
  9.     int *arr;
  10.     int *tmpArr;
  11.     unsigned int i;
  12.    
  13.     arr = malloc(10*sizeof arr[0]);
  14.    
  15.     if(!arr)
  16.     {
  17.         printf("memory allocation error.\n");
  18.         return 1;
  19.     }
  20.    
  21.     for(i=0; i<10; ++i)
  22.     {
  23.         arr[i] = i;
  24.         printf("%d ",arr[i]);
  25.     }
  26.  
  27.     printf("\n");
  28.    
  29.     memmove(arr, arr+2, 8*sizeof arr[0]);
  30.    
  31.     for(i=0; i<10; ++i) printf("%d ",arr[i]);
  32.    
  33.     printf("\n");
  34.    
  35.     tmpArr = realloc(arr,8*sizeof arr[0]);
  36.    
  37.     if(!tmpArr)
  38.     {
  39.         printf("memory reallocation error.\n");
  40.         free(arr);
  41.         return 1;
  42.     }
  43.    
  44.     arr = tmpArr;
  45.    
  46.     for(i=0; i<8; ++i) printf("%d ",arr[i]);
  47.    
  48.     printf("\n");
  49.    
  50.    
  51.     free(arr);
  52.    
  53.     return 0;
  54. }
  55.  
  56. /*
  57.  
  58. output:
  59.  
  60. 0 1 2 3 4 5 6 7 8 9
  61. 2 3 4 5 6 7 8 9 8 9
  62. 2 3 4 5 6 7 8 9
  63.  
  64. */
Advertisement
Add Comment
Please, Sign In to add comment