Comment inclure un tableau dynamique à l'INTÉRIEUR d'une struct en C?

J'ai regardé autour, mais ont été incapables de trouver une solution à ce qui doit être un bien posé la question.
Voici le code que j'ai:

 #include <stdlib.h>

struct my_struct {
    int n;
    char s[]
};

int main()
{
    struct my_struct ms;
    ms.s = malloc(sizeof(char*)*50);
}

et voici l'erreur de gcc me donne:
erreur: invalid use of flexible membre du groupe

Je peux le faire pour compiler si je déclare la déclaration de s à l'intérieur de la structure pour être

char* s

ce qui est probablement supérieure de mise en œuvre (de l'arithmétique des pointeurs est plus rapide que les tableaux, oui?)
mais je pensais que c une déclaration de

char s[]

est le même que

char* s
  • char s[] est le même que char *s seulement à l'intérieur d'une fonction de la liste des paramètres.
InformationsquelleAutor Tom | 2010-01-13