Я пишу программу на языке C, которая ищет строку внутри файла. Когда я компилирую и запускаю программу из командной строки, я получаю ошибку ошибки сегментации. Я знаю, что эта ошибка означает, что у меня нет доступа к памяти, которую я пытаюсь записать, но я не вижу, как это происходит в моей программе. Вот сегмент кода в моей main
функции, где происходит ошибка:Я не понимаю, почему я получаю сообщение «Ошибка сегментации (core dumped)»
int num_of_arguments = argc;
char *filename = argv[2];
char *search_string;
strcpy(search_string, argv[1]);
int i = 0;
while (search_string[i]) {
tolower(search_string[i]);
i++;
}
Ваш 'search_string' является неинициализированным указатель, указывающий в никуда , И вы пытаетесь «strcpy», что 'argv [1]' никуда. Отсюда крушение. – AnT
use '' search_string = strdup (argv [1]) '' вместо strcpy – Vorsprung