lungtung
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору спасибо goul за ответ! Но ещё не ясно. Конечно я могу написать так: ------------------------------ int len = strlen("Hello world"); char * string = new char[len+1]; strcpy(string,"Hello world"); или: char string[20]; strcpy(string,"Hello world"); ---------------------------------- И она будет нормально работать. Но при использовании указатель : char* string = "12345678901234567890"; // даже 20 символов длинее "Hello world"; strcpy(string,"Hello world") ; // ---> не работает??? ---------------------------------- Видно, что указатель указывает адрес, в котором сохраняет строку:"12345678901234567890". Вопрос : Почему функция strcpy в этой ситуации не работает в VC, а в Borland C она нормально работает? Добавлено: И ещё вопрос: Я написал программу: ------------------------------------------------------ char* copystr(char* st1, char* st2) { int len = strlen(st2); for(int i = 0; i < len; i++) st1[i] = st2[i]; st1[len] = 0; return st1; } void main() { char* string = "aaaaaaaaa",st[] = "123"; char* res = copystr( st, "Hello " ); // нормально работает printf( "String = %s\n", res ); // String = "Hello" printf( "String = %s\n", st ); // String = "Hello" copystr(string,"Hello"); // не работает? printf( "String = %s\n", string ); } ------------------------------------------------------------- Я не полнял что, почему она не работает в Visual C 6.0. Объясните пожалуйста! |