Когда я пытаюсь напечатать каждый символ файла, я получаю ошибку сегментации. Я не понимаю, почему.Я не понимаю, как я получаю ошибку сегментации
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]);
}
}
}
Я нашел ошибку. Для printf ("% c \ n", файл [i]) not printf ("% s \ n", файл [i]). Я верю, потому что я печатаю символ по характеру не одну строку. –
Включите предупреждения компилятора и посмотрите их. –
Точно:% s предназначено для печати строк,% c предназначено для печати символов. Сначала вы должны научиться использовать отладчик, так что, по крайней мере, вы найдете строку, которая вылетает, а не только «я получаю ошибку сегментации». Во-вторых, всякий раз, когда у вас есть проблема, вам нужно приблизиться к ней, сказав: «Я где-то ошибся. Какую ошибку я сделал?» Никогда не думайте: «Мой код правильный, почему он не работает». Всегда думаю: «Мой код неправильный. Где это неправильно?» – gnasher729