Allouer de la mémoire pour une structure avec un pointeur de caractère en C

J'avais du mal à fixer un code aujourd'hui, puis-je venir à travers quelque chose de similaire à:

typedef struct {
int a; 
int b; 
int c;
int d;
char* word;
} mystruct;

int main(int argc, char **argv){

    mystruct* structptr = malloc(sizeof(mystruct));
    if (structptr==NULL) {
        printf("ERROR!")
        ...
    }
    ...
    free(structptr);

    return 0;
}

le code a été de donner beaucoup d'erreurs de mémoire en raison du fait, que char* word est une chaîne de caractères de longueur variable, et le malloc a été de ne pas allouer suffisamment de mémoire pour elle. En fait, c'est seulement l'allocation de 20 Bytes pour l'ensemble de la struct. Est-il un moyen de contourner ce problème, sans tourner la char* dans qqch comme char word[50]?

vu que tu avais un commentaire, mais ensuite retiré. Merci d'éditer votre question avec plus d'informations ou pour soumettre une deuxième question. Il existe des méthodes pour faire face à une char vecteur de changements dans la longueur.
J'ai ajouté le commentaire puis trouvé la réponse dans les commentaires ci-dessous. Je crois, fixe taille de la mémoire tampon est effectivement la meilleure solution, car la parole représentera un nom et les noms ne devrait pas être aussi longue comme un roman 😉 . Merci pour l'aide. J'étais vraiment curieux à propos de l'allocation de mémoire pour les variables chaînes de caractères, c'est pourquoi j'ai demandé. Mais j'allais passer à longueur fixe des tableaux de toute façon.
ces jours-ci un espace (RAM) est abondante, donc dans la plupart des cas, la définition d'un tableau de caractères aussi grand que 1024 ne cause pas un problème. Tampons d'e/S sont systématiquement beaucoup plus que cela.
De toute évidence, vous ne comprenez pas les pointeurs très bien. Veuillez lire sur les pointeurs et les tableaux (par exemple, ici)
Double Possible de l'Allocation de la mémoire pour le char array

OriginalL'auteur H_squared | 2013-08-15