Я получал ошибку Segmentation Fault (дамп ядра) при запуске кода. После использования некоторого оператора printf я обнаружил, что в части strcmp есть ошибка, может быть, это связано с сравнением char со строкой? Как я могу это исправить?
// this function checks if the file contains the *string
bool checkIfMatch(char *string, FILE *file) {
while (true) {
char buff[1024];
fgets(buff, sizeof buff, file);
if (buff == NULL)
break;
char *substring=strstr(buff, string);
if ((strcmp(buff, substring)) == 0)
return true;
}
return false;
}
if(buff ==NULL) break;
никогда не приведет к разрыву; Используйтеif (fgets(buff, sizeof buff, file) == NULL) break;
Вы также никогда не проверяете результатыstrstr
перед их использованием вstrcmp
. - person WhozCraig   schedule 09.02.2014strcmp
иstrstr
достаточно только одного или другого из дубликатов. - person BLUEPIXY   schedule 09.02.2014