我想用戶定義的數組的大小在程序啓動時,我目前有:如何使結構體在C用戶定義的數組
#define SIZE 10
typedef struct node{
int data;
struct node *next;
} node;
struct ko {
struct node *first;
struct node *last;
} ;
struct ko array[SIZE];
這個工作,但是,我想除去#define SIZE
,讓大小是用戶定義的值,所以在主函數中我有:
int SIZE;
printf("enter array size");
scanf("%d", &SIZE);
我怎麼可以得到價值的陣列?
編輯:
typedef struct node{
int data;
struct node *next;
} node;
struct ko {
struct node *first;
struct node *last;
} ;
struct ko *array;
int size;
,這在main.c文件:
printf("size of array: ");
scanf("%d", &size);
array = malloc(sizeof(struct ko) * size);
若本工作
現在我有在.h文件下面?它沒有程序崩潰,但我不知道,如果問題 是在這裏或在其他程序中...
使用動態內存分配'malloc' –
可以在C99使用此語法。這裏是一個鏈接:http://stackoverflow.com/questions/737240/c-c-array-size-at-run-time-w-o-dynamic-allocation-is-allowed –