Advertisement
selkieautopsy13

dyna_alokac

May 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5. int rozmiar=0;
  6.  
  7. void wyswietl(int *dane)
  8. {
  9.     int *wsk=dane,i;
  10.     for(i=0;i<rozmiar;i++)
  11.     {
  12.         printf(" %d ",*(wsk++));
  13.     }
  14. }
  15.  
  16. void push_back(int *dane,int liczba)//dodaj na koncu
  17. {
  18.     rozmiar+=1;
  19.     int *tmp=realloc(dane,rozmiar*sizeof(int));
  20.     if(tmp==NULL)
  21.     {
  22.         printf("Blad alokacji pamieci");
  23.         exit(0);
  24.     }
  25.     else
  26.     {  
  27.         if(rozmiar>6)  
  28.         {              
  29.              printf("\nNie ma miejsca\n");
  30.              exit(0);
  31.         }
  32.         else                   
  33.             tmp[rozmiar-1]=liczba; 
  34.             dane=tmp;  
  35.        
  36.     }
  37. }
  38.  
  39. void push_front(int *dane,int liczba)
  40. {
  41.     rozmiar+=1;
  42.     int *tmp=realloc(dane,rozmiar*sizeof(int));
  43.     if(tmp==NULL)
  44.     {  
  45.         printf("Blad alokacji pamieci");
  46.         exit(0);
  47.     }
  48.     else
  49.     {
  50.         dane=tmp;
  51.         int i;
  52.         for(i=0;i<rozmiar;i++)
  53.         {
  54.             dane[i]=dane[i+1];
  55.         }
  56.         dane[0]=liczba;
  57.        
  58.     }
  59. }
  60.  
  61. void pop_back(int *dane)//usun z konca
  62. {
  63.     if(dane==NULL)
  64.     {
  65.         printf("Nie ma co usuwac!!!");
  66.         exit(0);
  67.     }
  68.     else
  69.     {                  
  70.         rozmiar-=1;
  71.         realloc(dane,rozmiar*sizeof(int));
  72.    
  73.     }
  74. }
  75.  
  76. void pop_front(int *dane)//usun z poczatku
  77. {
  78.     if(dane==NULL)
  79.     {
  80.         printf("Nie ma czego usuwac!!!");
  81.         exit(0);
  82.     }
  83.     else
  84.     {
  85.         int i;
  86.         for(i=0;i<rozmiar;i++)
  87.         {
  88.             dane[i]=dane[i+1];
  89.         }
  90.         rozmiar-=1;
  91.         realloc(dane,rozmiar*sizeof(int));
  92.     }
  93. }
  94.  
  95. void add(int *dane, int liczba, int index)//dodaj n-ty
  96. {
  97.     rozmiar+=1;
  98.     int *tmp=realloc(dane,rozmiar*sizeof(int));
  99.     if(tmp==NULL)
  100.     {
  101.         printf("Blad alokacji pamieci");
  102.         exit(0);
  103.     }
  104.     if(index>rozmiar && index<0)
  105.     {
  106.         printf("Nie ma takiego indeksu!!");
  107.         exit(0);
  108.     }
  109.     else
  110.     {  
  111.         if(rozmiar>6)
  112.         {
  113.             printf("\nNie ma miejsca!\n");
  114.             exit(0);
  115.         }
  116.         else
  117.         {          
  118.         int i;
  119.         for(i=rozmiar-1;i>=index;i--)
  120.         {
  121.             tmp[i]=tmp[i-1];
  122.         }
  123.         tmp[index]=liczba;
  124.         dane=tmp;
  125.         }
  126.     }
  127.    
  128. }
  129.  
  130.  
  131. void remowe(int *dane,int index)//usun n-ty
  132. {
  133.     if(dane==NULL)
  134.     {
  135.         printf("Nie ma co usuwac! ");
  136.         exit(0);
  137.     }
  138.     else
  139.     {
  140.        
  141.        
  142.         int i;
  143.         for(i=index;i<rozmiar-1;i++)
  144.         {
  145.             dane[i]=dane[i+1];
  146.         }
  147.         rozmiar-=1;
  148.         realloc(dane,rozmiar*sizeof(int));
  149.     }
  150. }
  151. int main(int argc, char *argv[]) {
  152.    
  153.     int *dane=(int*)malloc(rozmiar*sizeof(int));
  154.    
  155.     push_back(dane,3);
  156.         printf("\nLiczby : \n");
  157.             wyswietl(dane);
  158.     push_back(dane,2);
  159.         printf("\nLiczby : \n");
  160.             wyswietl(dane);
  161.     push_back(dane,7);
  162.         printf("\nLiczby : \n");
  163.             wyswietl(dane);
  164.     push_back(dane,5);
  165.         printf("\nLiczby : \n");
  166.         wyswietl(dane);
  167.     pop_front(dane);
  168.         printf("\nLiczby : \n");
  169.             wyswietl(dane);
  170.     pop_back(dane);
  171.         printf("\nLiczby : \n");
  172.             wyswietl(dane);
  173.     pop_back(dane);
  174.         printf("\nLiczby : \n");
  175.             wyswietl(dane);
  176.     add(dane,89,1);
  177.         printf("\nLiczby : \n");
  178.             wyswietl(dane);
  179.     add(dane,45,1);
  180.         printf("\nLiczby : \n");
  181.             wyswietl(dane);
  182.     add(dane,41,0);
  183.         printf("\nLiczby : \n");
  184.             wyswietl(dane);
  185.    
  186.     free(dane);
  187.     return 0;
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement