Составное буквенное присвоение является новым с C99, и синтаксис будет
e = (struct mystruct) {5, "blaat", "boe"};
Требуется приведенное выражение.
В C89 вы должны либо инициализировать e
как часть объявления:
struct mystruct {int a; char *b; char *c} e = {5, "blaat", "boe"};
или
struct mystruct e = {5, "blaat", "boe"};
или вы должны назначить членов индивидуально:
struct mystruct e;
e.a = 5;
e.b = "blaat";
e.c = "boe";