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

typedef struct{
    int **array;
    int **pointers;
    int stacks_number;
    int size;
}Stacks_array;

void init_array(Stacks_array *array){
    // Ввод числа стеков
    int N;
    printf("\nType number of stacks: ");
    if ((scanf("%d", &N) == 0) || (N < 3)){
        printf("\nError.*\n ");
        exit(-1);
    }
    array->stacks_number = N;
    // Ввод начальных размеров стеков
    (*array->pointers) = (int**)malloc(sizeof(int*));
    array->pointers = (int*)malloc(sizeof(int)*N);
    array->pointers[0] = 0;
    for (int i = 0; i < N; i++) {
        int tmp;
        printf("\nType size of stack number %d: ", i);
        if ((scanf("%d", &tmp) == 0) || ( tmp < 2)) {
            printf("\nError. Try again.\n ");
            i--;
            continue;
        }
        array->pointers[i + 1] = array->pointers[i] + tmp;
        if (i != N - 1)
            array->size += tmp;
    }
    // Инициализация массива
    array->array = (int*) malloc(sizeof(int)*array->size);
}

int main() {
    Stacks_array array;
    init_array(&array);
    return 0;
}
    // Инициализация массива
    array->array = (int*) malloc(sizeof(int)*array->size);
}

int main() {
    Stacks_array array;
    init_array(&array);
    return 0;
}