Вы можете использовать malloc для создания своей структуры.
Редактировать: ниже показан один из способов сделать то, что вы просите, создав связанный список:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int data;
void* next;
} tempStruct;
#define NUM_STRUCTS 4
int main(void) {
tempStruct* cur_ptr;
tempStruct* root_ptr;
int i;
root_ptr = malloc(sizeof(tempStruct));
root_ptr -> data = 0;
root_ptr -> next = NULL;
cur_ptr = root_ptr;
for (i = 1; i < NUM_STRUCTS; i ++ ) {
tempStruct* new_ptr = malloc(sizeof(tempStruct));
new_ptr -> data = i;
new_ptr -> next = NULL;
cur_ptr -> next = new_ptr;
cur_ptr = cur_ptr -> next;
}
cur_ptr = root_ptr;
while (cur_ptr != NULL) {
printf("cur_ptr -> data = %d\n", cur_ptr -> data);
cur_ptr = cur_ptr -> next;
}
return 0;
}
Если вы действительно хотите создать что-то, похожее на массив, вам нужно выделить всю вашу память одновременно, используя что-то вроде:
the_data = malloc(NUM_STRUCTS * sizeof(tempStruct);
Тогда вам придетсяполучить доступ к данным с помощью оператора точки (т. е. '.' (в вашем коде нет кавычек).