Comment bien malloc pour le tableau de struct en C

Je vais lire dans les deux char* (ou de chaînes de caractères) à l'aide de strtok, et depuis ces deux caractères sont liés, (address : command\n) j'ai décidé d'utiliser une structure.

struct line* array = (struct line*)malloc(sizeof(file) * sizeof(struct line*));

Cette ligne mallocing espace pour la fonction me donne une erreur de segmentation et je me demandais si vous pouvez me dire une bonne façon de malloc de l'espace. Pour le contexte, voici le reste de mon code:

struct line
{
    char* addr;
    char* inst;
};
while loop{
    x = strtok(line,": ");
    y = strtok(NULL,"\n");
    strcpy(array[i].addr,x); //assume that x and y are always 3characters
    strcpy(array[i].inst,++y);
    i++;
}
Gardez à l'esprit que l'allocation de la mémoire pour un tableau de struct line ne pas allouer de la mémoire pour le addr et inst cordes. Selon la façon dont ces pointeurs à l'intérieur de la struct line sont utilisés, vous devrez peut-être également allouer de la mémoire pour les données de la chaîne.

OriginalL'auteur o0tomato0o | 2013-10-27