Erreur de segmentation (C)
Axblade28
Messages postés
95
Statut
Membre
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Lorsque j'exécute mon programme il s'affiche une erreur de fragmentation. J'aimerais savoir ou se situe l'erreur dans mon code.
Je cherche à stocker dans un tableau un fichier de log afin de pouvoir y récupérer les données voulues.
Merci d'avance.
Lorsque j'exécute mon programme il s'affiche une erreur de fragmentation. J'aimerais savoir ou se situe l'erreur dans mon code.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int nombredeligne() {
FILE* fichier = NULL;
int caractereActuel = 0;
int nbrentrees = 0;
char *tableau;
int i = 0;
fichier = fopen("access_log", "r");
if (fichier != NULL) {
caractereActuel = fgetc(fichier);
while (caractereActuel != EOF) {
tableau[i] = caractereActuel;
if (tableau[i] == '\0') {
nbrentrees++; }
i++;
caractereActuel = fgetc(fichier);
}
fclose(fichier);
return nbrentrees;
}
return 0;
}
Je cherche à stocker dans un tableau un fichier de log afin de pouvoir y récupérer les données voulues.
Merci d'avance.
A voir également:
- Erreur de segmentation (C)
- Erreur upes 1025 - Forum Téléviseurs
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
8 réponses
tu clique droit sur le dossier puis selectionne defragmenter si tu n'as pas cette options tu tape dans la commande defragmentation ou defragmenteur et tu verra le programme s'afficher puis clique dessus et fais une defragmentation complete de l'ordinateur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je pense pas que cela vienne de ça car le programme est pour le moment très simple je viens d'isoler l'unique fonction, je pense que ce n'est pas à cause d'un fichier fragmenté.
Bonjour,
Le problème vient du pointeur.
char *tableau;
tableau[i]=...;
Ce n'est pas bon et cela provoque une erreur de segmentation puisque t'écris dans une zone non allouée.
Il faut que tu réalises l'allocation avec malloc. Par exemple : tableau=malloc(taille);
Ensuite tu pourras écrire dans le tableau.
Ou alors si tu connais la taille à l'avance tu peux faire directement : char tableau[TAILLE];
Cdlt,
Le problème vient du pointeur.
char *tableau;
tableau[i]=...;
Ce n'est pas bon et cela provoque une erreur de segmentation puisque t'écris dans une zone non allouée.
Il faut que tu réalises l'allocation avec malloc. Par exemple : tableau=malloc(taille);
Ensuite tu pourras écrire dans le tableau.
Ou alors si tu connais la taille à l'avance tu peux faire directement : char tableau[TAILLE];
Cdlt,