Lorsque j'essaie d'imprimer chaque caractère du fichier, j'obtiens une erreur de segmentation. Je ne comprends pas pourquoi.Je ne comprends pas comment j'obtiens un défaut de segmentation
void parseStringAndDelete(char *file)
{
// I a passing "drwxr-xr-x 1 ftp ftp 0 Mar 07 12:34 A_Folder"
// as an argument for the function
int i = 0;
int k = 0;
int len = strlen(file);
int startIndex = 0;
//printf("%s\n", file);
//printf("%d\n", len);
if(file[0] == 'd')
{
for(i = 0; i<len; i++)
{
printf("%s\n", file[i]);
}
}
}
J'ai trouvé l'erreur. Pour printf ("% c \ n", fichier [i]) pas printf ("% s \ n", fichier [i]). Je crois parce que j'imprime caractère par caractère pas seulement une chaîne. –
Activer les avertissements du compilateur et les regarder. –
Exactement:% s est utilisé pour l'impression de chaînes,% c pour l'impression de caractères. Vous devez d'abord apprendre à utiliser un débogueur, donc au moins, vous trouverez la ligne qui se bloque, pas seulement "Je reçois une erreur de segmentation". Deuxièmement, chaque fois que vous avez un problème, vous devez l'aborder en disant: "Je me suis trompé quelque part, quelle erreur ai-je commise?" Ne pensez jamais: "Mon code est correct, pourquoi ça ne marche pas?" Pensez toujours: "Mon code est faux Où est-il faux?" – gnasher729