例如,我有这个代码。
#include <stdlib.h>
#include <stdio.h>
#define array_size 3
typedef struct {
int array[array_size];
} TEST;
void printout(TEST *p, int element) {
printf("element: %i\n", p->array[element]);
}
int main(void) {
TEST *p;
p = malloc(sizeof(TEST));
p->array[0] = 5;
printout(p, 0);
return 0;
}
但我想"array_size"
根据用户输入进行分配。
如果我尝试这样做,编译器会说"variably modified ‘array_size’ at file scope"
. 那么,我是否正确,做我想做的唯一方法是将所有内容移至 main()..?
它工作得很好,但保持structs and functions declarations
在文件范围内似乎,你知道的,很整洁。