Как написать аналог функции strcpy() с выделением памяти?

Согласно заданию, нужно написать функцию, копирование строки, в новую строку с выделением памяти Зачем в данной функции ее выделять?

К сожалению, по коду, ничего в голову не лезет. Гугл выдает тоже не подходящие варианты.

Данное... работает, но как мне, это неудачный вариант.
char *str1 = "123456789112345";
    char *str2 = "sdf";
    str1 = str2;
    cout << str1 << endl;
    cout << str2 << endl;
  • Вопрос задан
  • 1730 просмотров
Решения вопроса 1
Olej
@Olej
инженер, программист, преподаватель
нужно написать функцию, копирование строки, в новую строку с выделением памяти

Это POSIX функция strdup().
char *strdup (const char *s)
Можете глянуть как она работает.
Что-то такое:
char* strdup( const char *s ) {
   char *p = malloc( strlen( s ) + 1 );
   if( p ) strcpy( p, s );
   return p;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Если вы используете iostreams, работайте с std::string. Если преподаватель мешает C и С++ прямо перед лицом студентов, передайте ему, что он - странный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы