Terminapor I'll see you rise. | Déjà, Dimension n'est pas initialisé, donc ta boucle risque de prendre un certain temps.
Ensuite, ton tab est un pointeur sur tableau de char, et n'est pas initialisé non plus.
Dans ta copie, tu décale que d'une case dans tab, donc tu écrasera les anciennes lettres..
Il faut commencer par allouer ton tab, comme tu ne connais pas la taille du fichier, fais juste un pointeur que tu ré-allouera.
Code :
- //remplissage du tableau
- FILE *fichier=NULL;
- char chaine[100];
- int i = 0;
- char *tab = NULL;
- int taille = 0;
- fichier = fopen("easyin.txt", "r" );
- while (true)
- {
- if (fgets(chaine, 100, fichier) != NULL)
- {
- // On calcule la nouvelle taille (ancienne taille + taille de la chaine à ajouter)
- int Len = strlen(chaine);
- taille += Len;
- // Allocation si tab est NULL, sinon ré-allocation
- if (tab == NULL)
- tab = (char*)malloc( taille );
- else
- tab = (char*)realloc( tab, taille );
- // Le décalage sera toujours de 100 caractères,puisque c'est uniquement à la fin du fichier que tu pourras avoir taille de chaine < 100.
- strcpy( tab + i*100 ,chaine);
- i++;
- }
- else
- break;
- }
|
---------------
Perhaps you don't deserve to breathe
|