Sascha Bahl
03-04-2006, 21:43
Hi!
Habe ein kleines Problemchen und sehe irgendwie den Grund nicht. Folgende Funktion sorgt bei mir für einen Fehler, wie Valgrind meldet.
void FileObserver::setFile( const char* myFile )
{
this->m_myFile = (char *)malloc( sizeof(char) * strlen(myFile) );
memset( this->m_myFile, '\0', strlen(myFile) );
strcpy( this->m_myFile, myFile );
}
Die Ausgabe von Valgrind:
invalid write of size 1
...
Adress 0xirgendwas is 0 bytes after a block of size 27 alloc'd
Wenn ich mein Programm debugge, kann ich allerdings feststellen, dass in this->m_myFile genau das selbe wie in myFile steht. Insofern wäre doch alles in Ordnung. Also, ich sehe den Fehler nicht. Vielleicht kann mir jemand helfen ihn zu sehen.
Grüße
Habe ein kleines Problemchen und sehe irgendwie den Grund nicht. Folgende Funktion sorgt bei mir für einen Fehler, wie Valgrind meldet.
void FileObserver::setFile( const char* myFile )
{
this->m_myFile = (char *)malloc( sizeof(char) * strlen(myFile) );
memset( this->m_myFile, '\0', strlen(myFile) );
strcpy( this->m_myFile, myFile );
}
Die Ausgabe von Valgrind:
invalid write of size 1
...
Adress 0xirgendwas is 0 bytes after a block of size 27 alloc'd
Wenn ich mein Programm debugge, kann ich allerdings feststellen, dass in this->m_myFile genau das selbe wie in myFile steht. Insofern wäre doch alles in Ordnung. Also, ich sehe den Fehler nicht. Vielleicht kann mir jemand helfen ihn zu sehen.
Grüße