Advertisement
RicardasSim

realloc

Jul 6th, 2019
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.16 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.     //increase
  30.    
  31.     tmpArr = realloc(arr,12*sizeof arr[0]);
  32.    
  33.     if(!tmpArr)
  34.     {
  35.         printf("memory reallocation error.\n");
  36.         free(arr);
  37.         return 1;
  38.     }    
  39.    
  40.     arr = tmpArr;
  41.    
  42.     arr[10]=10;
  43.     arr[11]=11;
  44.    
  45.     for(i=0; i<12; ++i) printf("%d ",arr[i]);
  46.    
  47.     printf("\n");    
  48.    
  49.     //shrink
  50.    
  51.     tmpArr = realloc(arr,8*sizeof arr[0]);
  52.    
  53.     if(!tmpArr)
  54.     {
  55.         printf("memory reallocation error.\n");
  56.         free(arr);
  57.         return 1;
  58.     }
  59.    
  60.     arr = tmpArr;
  61.    
  62.     for(i=0; i<8; ++i) printf("%d ",arr[i]);
  63.    
  64.     printf("\n");
  65.    
  66.    
  67.     free(arr);
  68.    
  69.     return 0;
  70. }
  71.  
  72. /*
  73.  
  74. output:
  75.  
  76. 0 1 2 3 4 5 6 7 8 9
  77. 0 1 2 3 4 5 6 7 8 9 10 11
  78. 0 1 2 3 4 5 6 7
  79.  
  80. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement