struct S{
int n;
int arr[]///柔性数组成员不能包含长度并且前面必须要有一个结构体成员
};
int main(){
struct S*ps=(struct S*)malloc(sizeof(struct S)+10*sizeof(int))//柔性数组在结构体中不占空间所以要用malloc函数进行开辟
int i=0;
ps->n=100;//把n赋值给100;
for(i=0;i<10;i++){
ps->arr[i]=i//ps->arr[i]代表该结构体下的柔性数组
}
for(i=0;i<10;i++){
printf("%d ",ps->arr[i]);
}
free(ps);//在堆上开辟空间要进行释放
ps=NULL;//最好把ps只想空指针
return 0;
}
n | arr |
这个表示在堆上开辟的空间图