La lecture de chaque ligne du fichier dans un tableau

Je suis en train de lire un fichier et que vous voulez mettre chaque ligne dans une chaîne de caractères dans un tableau. La longueur du fichier est de l'arbitraire et de la longueur de chaque ligne est arbitraire (même à supposer qu'il sera à moins de 100 caractères).

Voici ce que j'ai et ce n'est pas la compilation. C'est un tableau à un tableau de caractères, non? Donc ne devrait-il pas être char** words = (**char)malloc(sizeof(*char));?

#include <stdio.h>
#include <stdlib.h>

int main(){


 int BUFSIZE = 32767;//max number of lines to read
 char** words = (**char)malloc(sizeof(*char));//gives error: expected expression before 'char'
 FILE *fp = fopen("coll.txt", "r");
 if (fp == 0){
        fprintf(stderr, "Error opening file");
        exit(1);
 }

int i = 0;
words[i] = malloc(BUFSIZE);
while(fscanf(fp, "%100s", words[i]) == 1)//no line will be longer than 100
{
        i++;
        words[i] = realloc(words, sizeof(char*)*i);
 }

 int j;
 for(j = 0; j < i; j++)
    printf("%s\n", words);

 return 0;
}

Remarque: j'ai lu "Lecture à partir d'un fichier et le stocker dans le tableau" mais il n'a pas répondu à ma question.

il doit être de type char*... vous êtes à essayer de trouver la taille du pointeur de caractère...
Notez que %100s (a) sauter menant l'espace blanc et de l'arrêt de la lecture à l'espace blanc après un non-caractère espace blanc, et (b) un débordement de mémoire tampon de taille 100 par un octet, ce qui pourrait la matière. Vous devez spécifier un de moins que la taille du tableau dans la spécification de conversion.

OriginalL'auteur Celeritas | 2013-10-04