How do you correctly align array memory when using unsafe_store! to write a struct array to a c or fortran program?

I think there he has an allocatable vector of strings of length 256 (each character in Fortran is effectively 8 bits).

Maybe what is needed in the Fortran side is

character(len=1), allocatable::string(:)

which is a allocatable vector of characters.

Still one would need to guarantee that only 8 bit characters are used in the Julia string.