From 998012de86e0028f2fe4f9ed0a4b531710d079eb Mon Sep 17 00:00:00 2001 From: Jonathan Leffler Date: Wed, 20 Dec 2023 22:00:01 -0700 Subject: [PATCH] Add vla61.c to demonstrate FAM of fixed size strings --- doc/flex-array-members/.gitignore | 1 + doc/flex-array-members/vla61.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 doc/flex-array-members/vla61.c diff --git a/doc/flex-array-members/.gitignore b/doc/flex-array-members/.gitignore index 2e222120..a7c4ce9a 100644 --- a/doc/flex-array-members/.gitignore +++ b/doc/flex-array-members/.gitignore @@ -1,3 +1,4 @@ famcopy famsize gcc-fam +vla61 diff --git a/doc/flex-array-members/vla61.c b/doc/flex-array-members/vla61.c new file mode 100644 index 00000000..952931c9 --- /dev/null +++ b/doc/flex-array-members/vla61.c @@ -0,0 +1,27 @@ +/* Demonstrating a FAM of fixed size strings */ +#include +#include +#include +#include + +typedef struct VLA +{ + int num; + char vla[][32]; +} VLA; + +int main(void) +{ + int num = 10; + VLA *vla = malloc(sizeof(VLA) + num * sizeof(vla->vla[0])); + assert(vla != 0); // Lousy test mechanism! + for (int i = 0; i < num; i++) + strcpy(vla->vla[i], "Arbitrary medium length string"); + vla->num = num; + + for (int i = 0; i < vla->num; i++) + printf("%d: [%s]\n", i, vla->vla[i]); + + free(vla); + return 0; +}