I have multiple flexible arrays in s struct in c:
malloc(sizeof(EthgenSig) + sizeof(Name) * 10);
You can't have more than one flexible-array member for the exact reason you pointed out.
At most, if you need your data to be kept all in the same memory block, you can make
nim pointers and set where they point to the correct locations after allocation (making sure not to break any alignment constraint), but the simplest (and most sensible) thing is to just allocate separately the arrays for