#include #include #include #include struct IntArray{ int *data; size_t length; }; void readintarray(struct IntArray *input) { printf("inputlength:%zu\n", input->length); for (size_t i = 0; i < input->length; i++) { printf("digit:%d = %d\n", i, input->data[i]); } } struct IntArray *create_int_array(size_t length) { struct IntArray *myintarray = malloc(sizeof(struct IntArray)); /* allocate memory for struct */ myintarray->data = malloc(sizeof(int) * length); /* make sure the pointer in the struct points to the array */ myintarray->length = length; //forgot to actually assign a value to the struct if (myintarray->data == NULL) { exit(0); } return myintarray; } int main() { srand(time(NULL)); printf("how many numbers?\n"); int length; scanf("%d", &length); struct IntArray *myintarray = create_int_array(length); for (int i = 0; i < length; i++) { myintarray->data[i] = rand() % 10; printf("number:%d = %d\n",i,myintarray->data[i]); } readintarray(myintarray); free(myintarray->data); free(myintarray); return 0; }