I have been trying to figure out why I get this outoput: 4 4 khgukytit8ig 13
######################### And not this: 4 4 khgukytit8igddddddddddddddddddddddd0 36 ############################################# THE CODE ############################################# #include <iostream> using namespace std; class MyString { public: MyString( const char * ); ~MyString(); const char *getChar(); private: char *word; }; MyString::MyString( const char *str ) { cout << "Constructor: START" << endl; cout << "str: " << str << " strlen(str): " << strlen(str) << endl; word = new char( strlen(str) ); memset( word, '-', strlen(str) ); cout << word << " " << strlen( word ) << endl; strcpy(word, str); cout << "str: " << str << " strlen(str): " << strlen(str) << endl << "word:" << word << " strlen(word): " << strlen(word) << endl; cout << "Constructor: END" << endl << endl; } MyString::~MyString() { delete [] word; word = 0; } const char * MyString::getChar() { return word; } int main( void ) { MyString str4("khgukytit8igddddddddddddddddddddddd0"); MyString str2( "0123456789qwertypppppppppppppppppppppppppoooooooooooooooooooooooooooooooooooooooooopppppppppppppp" ); cout << sizeof(str4) << " " << sizeof(str4.getChar()) << " " << str4.getChar() << " " << strlen(str4.getChar()) << endl; cout << sizeof(str2) << " " << sizeof(str2.getChar()) << " " << str2.getChar() << " " << strlen(str2.getChar()) << endl; return EXIT_SUCCESS; } btw, Im doing this as excersise, so any buggy things on the code please let me know. -- Summary: strcpy bug? or mine? Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rolosworld at gmail dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19172