Geht halt mit Pointern. Hab ich schon gemacht. Wo es wirklich spannend wird sind intrinsische verkettete listen (also die Listen Heads sind Teil vom struct, nicht das struct selbst).
Problem ist, dass du immer garantieren musst, dass sich die Addresse der Listenobjekte nicht ändert. Dafür gibt's Pin, Box, und Versprechen auf Ehre.
I write my stuff in neovim with latex. Works really well. There is a live preview plugin if you want that too.