Поскольку это тег c99, я подумал о том, чтобы добавить в стандарт что-то интересное, основываясь на том, что вы просили (правка: массивы переменной длины - спасибо, @underscore_d). Есть кое-что заполнить, но это может помочь вам начать. Другой подход заключается в использовании mallo c для извлечения памяти для структур из кучи, в отличие от стека (используя эффективно alloca), как мы делаем ниже. HTH:
#include <stdio.h>
typedef struct {
int num;
char name[10];
float yep;
} mystruct;
void do_something_with_n_structs(int n) {
mystruct structs[n];
int idx;
for (idx = 0; idx < n; ++idx) {
// fill this bit in
}
}
int main() {
int n = 0;
printf("Enter a number: "); fflush(stdout);
scanf("%d", &n);
do_something_with_n_structs(n);
return 0;
}