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!"
См. также
|
(C23) | выделяет копию строки заданного размера (функция) |
|
(C11) | копирует одну строку в другую (функция) |
| выделяет память (функция) |
|
| освобождает ранее выделенную память (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/strdup