c++ - Why does string copy fail for already allocated string -
c++ - Why does string copy fail for already allocated string -
possible duplicate: simple modification of c strings using pointers
why fail , give unhandled exception in vs2010 when running function stringcopy_test()
? note when uncomment out comment, , comment out sec line in stringcopy_test()
, works fine.
void stringcopy_test() { char* str1 = "hello"; char* str2 = "world"; //char* str2 = (char*) malloc(sizeof(char)*(stringlength(str1) + 1)); cout << "copying \"" << str1 << "\": " << stringcopy(str2, str1) << "\n\n"; } char* stringcopy(char* dest, char* src) { if ((*dest = *src) != '\0') stringcopy(dest + 1, src + 1); homecoming dest; }
str2
constant string, can't modify it.
below code work
void stringcopy_test() { char* str1 = "hello"; char str2[ 100 ] ; cout << "copying \"" << str1 << "\": " << stringcopy(str2, str1) << "\n\n"; } char* stringcopy(char* dest, char* src) { if ((*dest = *src) != '\0') stringcopy(dest + 1, src + 1); homecoming dest; }
c++ string memory-management undefined-behavior
Comments
Post a Comment