C/C++小知识点:柔性数组
- 一个未知大小的数组
- 结构中柔性数组成员前必须至少一个其他成员
- sizeof()返回的结构大小不包含柔性数组内存
- 用malloc()动态分配内存应大于结构大小且适应柔性数组预期大小
#include <stdio.h>
#include <stdlib.h>
typedef struct flexArray
{
int size;
int farr[];
}flexArray;
int main()
{
flexArray * flexarr = (flexArray *)malloc(sizeof(flexArray) + 10 * sizeof(int));
flexarr->size = 10;
for (int index = 0; index < flexarr->size; index++)
{
flexarr->farr[index] = index;
printf("%d ", flexarr->farr[index]);
}
printf("\n");
free(flexarr);
return 0;
}