C99標準出來以前,C語言不支援動態定義陣列大小,只能採用動態分配指標方式來完成動態陣列的個數定義。如:
struct st {
int x,y;
char str[10];
};
struct st *array ;
int n;
printf("input n: "); scanf("%d", &n);
array=(struct st*)malloc(n*sizeof(struct st)); //動態分配n個結構體空間,接下來array的操作,與陣列操作是相同的,如:array[0].x=1 ;
C99以後,C語言標準開始支援動態定義陣列,但動態陣列,在其確定個數之後,在其生命期中,就不可變了。如:
struct st array[n] ; //定義動態陣列
array[0].x=1 ;
C99標準出來以前,C語言不支援動態定義陣列大小,只能採用動態分配指標方式來完成動態陣列的個數定義。如:
struct st {
int x,y;
char str[10];
};
struct st *array ;
int n;
printf("input n: "); scanf("%d", &n);
array=(struct st*)malloc(n*sizeof(struct st)); //動態分配n個結構體空間,接下來array的操作,與陣列操作是相同的,如:array[0].x=1 ;
C99以後,C語言標準開始支援動態定義陣列,但動態陣列,在其確定個數之後,在其生命期中,就不可變了。如:
struct st {
int x,y;
char str[10];
};
int n;
printf("input n: "); scanf("%d", &n);
struct st array[n] ; //定義動態陣列
array[0].x=1 ;