Come includere una matrice dynamic INSIDE una struttura in C?

Mi sono guardato attorno ma non sono riuscito a trovare una soluzione a quella che deve essere una domanda ben fatta. Ecco il codice che ho:

#include  struct my_struct { int n; char s[] }; int main() { struct my_struct ms; ms.s = malloc(sizeof(char*)*50); } 

ed ecco l’errore che mi dà gcc: errore: uso non valido del membro di array flessibile

Posso farlo compilare se dichiaro che la dichiarazione di s all’interno della struct sia

 char* s 

e questa è probabilmente un’implementazione superiore (l’aritmetica del puntatore è più veloce degli array, sì?) ma ho pensato in ca dichiarazione di

 char s[] 

equivale a

 char* s