Namespaces
Variants

strdup

From cppreference.net
< c ‎ | string ‎ | byte
Определено в заголовочном файле <string.h>
char * strdup ( const char * src ) ;
(начиная с C23)

Возвращает указатель на байтовую строку, завершающуюся нулём, которая является дубликатом строки, на которую указывает src . Память для новой строки выделяется так, как если бы была вызвана функция malloc . Полученный указатель должен быть передан функции free во избежание утечки памяти.

Если возникает ошибка, возвращается нулевой указатель, и errno может быть установлен.

Содержание

Параметры

src - указатель на нуль-терминированную строку байтов для дублирования

Возвращаемое значение

Указатель на вновь выделенную строку или нулевой указатель, если произошла ошибка.

Примечания

Функция идентична POSIX strdup .

Пример

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char *s1 = "Duplicate me!";
    char *s2 = strdup(s1);
    printf("s2 = \"%s\"\n", s2);
    free(s2);
}

Вывод:

s2 = "Duplicate me!"

Смотрите также

(C23)
выделяет копию строки указанного размера
(функция)
копирует одну строку в другую
(функция)
выделяет память
(функция)
освобождает ранее выделенную память
(функция)