#include <stdio.h>
#include <stdlib.h>
int main(void) {
int capacity = 4; // for example
void **array
= malloc(capacity
*sizeof(void*)); // assign values to array elements
for(int i = 0; i < capacity; i++) {
array
[i
] = malloc(sizeof(int)); // not sure if it necessary *(int*)array[i] = i*i;
printf("index: %d, element: %d\n", i
, *(int*)array
[i
]); // for demonstration }
/*
* after that I try to print all the elements of the array sequentially
*/
for(int i = 0; i < capacity; i++) {
printf("index: %d, element: %d\n", i
, *(int*)array
[i
]); }
// I know that I do not free my memory, but that’s not the point
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKHZvaWQpIHsKICAgIGludCBjYXBhY2l0eSA9IDQ7IC8vIGZvciBleGFtcGxlCgogICAgdm9pZCAqKmFycmF5ID0gbWFsbG9jKGNhcGFjaXR5KnNpemVvZih2b2lkKikpOwogICAgLy8gYXNzaWduIHZhbHVlcyB0byBhcnJheSBlbGVtZW50cwogICAgZm9yKGludCBpID0gMDsgaSA8IGNhcGFjaXR5OyBpKyspIHsKICAgICAgICBhcnJheVtpXSA9IG1hbGxvYyhzaXplb2YoaW50KSk7IC8vIG5vdCBzdXJlIGlmIGl0IG5lY2Vzc2FyeQogICAgICAgICooaW50KilhcnJheVtpXSA9IGkqaTsKICAgICAgICBwcmludGYoImluZGV4OiAlZCwgZWxlbWVudDogJWRcbiIsIGksICooaW50KilhcnJheVtpXSk7IC8vIGZvciBkZW1vbnN0cmF0aW9uCiAgICB9CiAgICBwcmludGYoIlxuIik7CiAgICAvKgogICAgKiBhZnRlciB0aGF0IEkgdHJ5IHRvIHByaW50IGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIGFycmF5IHNlcXVlbnRpYWxseQogICAgKi8KICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjYXBhY2l0eTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJpbmRleDogJWQsIGVsZW1lbnQ6ICVkXG4iLCBpLCAqKGludCopYXJyYXlbaV0pOwogICAgfQoKICAgIC8vIEkga25vdyB0aGF0IEkgZG8gbm90IGZyZWUgbXkgbWVtb3J5LCBidXQgdGhhdOKAmXMgbm90IHRoZSBwb2ludAogICAgcmV0dXJuIDA7Cn0K
index: 0, element: 0
index: 1, element: 1
index: 2, element: 4
index: 3, element: 9
index: 0, element: 0
index: 1, element: 1
index: 2, element: 4
index: 3, element: 9