Segmentation Fault mit strcmp in C?

War ich immer " Segmentation Fault (core dump) Fehlermeldung, wenn ich den code ausführen. Nach der Verwendung einige printf-Anweisung fand ich heraus, dass es ist ein Fehler in strcmp Teil, vielleicht, weil der Vergleich ein char mit einem string? Wie kann ich dieses Problem beheben?

//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;    
}
verwenden strncmp() anstelle von strcmp() ich.e strlen(substring).
Diese: if(buff ==NULL) break; wird nie zu einem Kabelbruch; Verwenden if (fgets(buff, sizeof buff, file) == NULL) break; Sie auch nie überprüfen Sie die Ergebnisse Ihrer strstr vor der Verwendung in der strcmp.
und strcmp und strstr genug, nur der eine oder andere Duplikate.

InformationsquelleAutor Gavin Z. | 2014-02-09

Schreibe einen Kommentar