柔性数组

#include <stdio.h>
#include <malloc.h>
struct S
{
int n;
int arr[0];//未知大小-柔性数组成员-数组的大小是可以调整的
};
int main()
{
struct S* ps = (struct S*)malloc(sizeof(struct S)+5*sizeof(int));
ps->n = 100;
int i = 0;
for ( i = 0; i < 5; i++)
{
ps->arr[i] = i;//0 1 2 3 4
}


struct S* ptr =realloc(ps, 44); //用realloc函数来增加数组长度
if (ptr!=NULL)
{
ps = ptr;
}


for ( i = 0; i < 10; i++)
{
ps->arr[i] = i;
}
for ( i = 0; i < 10; i++)
{
printf("%d", ps->arr[i]);
}
free(ps);
ps = NULL;
return 0;
}

posted @ 2022-05-10 15:13  藏进夜里躲在光下  阅读(46)  评论(0)    收藏  举报