CV 8

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void vypis_pole(int n,int pole[]){
    for (int i = 0; i < n; i++)
    {
        printf("%d ",pole[i]);
    }
    printf("\n");
}

int* napln_pole(int n){
    int *pole=malloc(n*sizeof(int));
    //int *pole=calloc(n,sizeof(int));
    for (int i = 0; i < n; i++)
    {
        pole[i]=i+1;
    }
    return pole;
}

int* cti_pole(int *pocet){
     int alokovano = 3;
    *pocet = 0;
    int *pole;
    pole = (int*) malloc(alokovano*sizeof(int));
    if (pole==NULL){
        printf("Nepovedla se alokace\n");
        //uklid
        return NULL;
    }
    int data;
    while(scanf("%d",&data)==1){
        if (*pocet==alokovano){
            //realokace:
            alokovano=alokovano+3;
            pole = realloc(pole,alokovano*sizeof(int));
            printf("probiha realokace na velikost %d\n",alokovano);
            if (pole==NULL){
                printf("Nepovedla se realokace\n");
                //uklid
                return NULL;
            }
        }
        pole[*pocet]=data;
        (*pocet)++;
    }
    return pole;
}

int main(int argc, char *argv[])
{

    int pocet;
    int *pole;
    pole = cti_pole(&pocet);
    if (pole==NULL){
        printf("Nepovedla se alokace\n");
        return 100;
    }
    vypis_pole(pocet,pole);
    free(pole);
    
    return 0;
}