Verstehe valgrind Fehler nicht
-
Hallo, bin sehr unter Zeitnot und ich finde meinen Fehler nicht.
Hab mit valgrind mein Programm gecheckt und aufgrund der Zeile´ name_of_file_temporary = strncpy(name_of_file_temporary, *name_of_file, length_of_file_name - LENGTH_OF_FILE_EXTENSION_POINT_DB);
bekomme ich diesen Fehler (habs mit Debug printfs überprüft)
Invalid write of size 2hier die ganze Funktion
int addHtmlFileExtensionToFileName(char **name_of_file) { int error_code = 0; char *name_of_file_temporary = NULL; int length_of_file_name = strlen(*name_of_file); error_code = allocateStringMemory(&name_of_file_temporary, length_of_file_name + 1); if(error_code != COMPARE_CONSTANT_ZERO) { return error_code; } name_of_file_temporary = strncpy(name_of_file_temporary, *name_of_file, length_of_file_name - LENGTH_OF_FILE_EXTENSION_POINT_DB); name_of_file_temporary[length_of_file_name - LENGTH_OF_FILE_EXTENSION_POINT_DB] = NULL_CHARACTER; name_of_file_temporary = strncat(name_of_file_temporary, HTML_FILE_EXTENSION, NUMBER_OF_CHARACTERS_OF_HTML_FILE_EXTENSION); *name_of_file = name_of_file_temporary; return NO_ERROR; }
Bitte Bitte helft mir, ich brauch das unbedingt.
-
mit LENGTH_OF_FILE_EXTENSION_POINT_DB ist 3 gemeint.
HTML_FILE_EXTENSION entspricht ".html"
-
Welchen Wert hat length_of_file_name? Was macht allocateStringMemory? Kannst du ein minimales, compilierbares Beispiel geben, welches den Fehler noch zeigt?
-
name_of_file_temporary dürfte wohl auf diffusen Speicher verweisen.
Undsprintf(name_of_file_temporary,"%.*s",length_of_file_name - LENGTH_OF_FILE_EXTENSION_POINT_DB,*name_of_file);
fasst deine beiden Konstrukte zusammen.