Spec-Zone.ru › C

strdup

Определено в заголовочном файле <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!"

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/strdup

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API