1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <stdlib.h> #include <stdio.h> typedef struct { int x; } data; void fill_data (data *** ptr_all, int l) { int i = 0; *ptr_all = (data**) calloc(l, sizeof(data)); if ((*ptr_all) == NULL){ fprintf(stderr, "error: can't allocate memory"); abort(); } for (i = 0; i < l; i++) { data * d = (data*) calloc(1, sizeof(data)); if (d == NULL){ fprintf(stderr, "error: can't allocate memory for %i-th data", i+1); abort(); } d->x = i; (*ptr_all)[i] = d; } } int main(int argc, char *argv[]) { int i = 0, l = 5; data ** all = NULL; fill_data (&all, l); for (i = 0; i < l; i++) { printf("%i\n", all[i]->x); } return EXIT_SUCCESS; } |
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCnR5cGVkZWYgc3RydWN0CnsKICBpbnQgeDsKfSBkYXRhOwoKdm9pZCBmaWxsX2RhdGEgKGRhdGEgKioqIHB0cl9hbGwsIGludCBsKQp7CiAgaW50IGkgPSAwOwogICpwdHJfYWxsID0gKGRhdGEqKikgY2FsbG9jKGwsIHNpemVvZihkYXRhKSk7CiAgaWYgKCgqcHRyX2FsbCkgPT0gTlVMTCl7CiAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yOiBjYW4ndCBhbGxvY2F0ZSBtZW1vcnkiKTsKICAgIGFib3J0KCk7CiAgfQogIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspCiAgewogICAgZGF0YSAqIGQgPSAoZGF0YSopIGNhbGxvYygxLCBzaXplb2YoZGF0YSkpOwogICAgaWYgKGQgPT0gTlVMTCl7CiAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3I6IGNhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgJWktdGggZGF0YSIsIGkrMSk7CiAgICAgIGFib3J0KCk7CiAgICB9CiAgICBkLT54ID0gaTsKICAgICgqcHRyX2FsbClbaV0gPSBkOwogIH0KfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewogIGludCBpID0gMCwgbCA9IDU7CiAgZGF0YSAqKiBhbGwgPSBOVUxMOwoKICBmaWxsX2RhdGEgKCZhbGwsIGwpOwoKICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKQogIHsKICAgIHByaW50ZigiJWlcbiIsIGFsbFtpXS0+eCk7CiAgfQoKICByZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 1852 kB returned value: 0
0 1 2 3 4


