#ifndef __A_H__
#define __A_H__
struct A;
struct A *a_init(int cnt);
int use(struct A *a);
#endif /* __A_H__ */

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

int main()
{
    const int cnt = 10;
    struct A *a = a_init(cnt);
    use(a);
    return 0;
}


struct A {
    int a[10];
    int *b;
    int c;
    int cnt;
};
static struct A *_a;
struct A *a_init(int cnt) {
    _a = calloc(cnt, sizeof(struct A));
    int i;
    for (i = 0; i < cnt; i++)
        _a[i].b = calloc(cnt*cnt, sizeof(int));
    for (i = 0; i < cnt; i++) {
        _a[i].c = i*i*i;
        _a[i].cnt = cnt;
        int j;
        for (j = 0; j < cnt * cnt; j++)
            _a[i].b[j] = j * 3; 
    }
    return _a;
}
int use(struct A *a) {
    int i;
    int cnt = a[0].cnt;
    for (i = 0; i < cnt; i++) {
        printf("%d \n", a[i].c);
        int j;
        for (j = 0; j < cnt * cnt; j++) 
            printf("%d ", a[i].b[j]);
        printf("\n\n\n");
    }
}