strdup() функция языка Си. Копирование строки с выделением памяти.

Функция strdup() осуществляет выделение памяти и копирование строк, возвращает адрес скопированной строки.


#include <string.h>
dup = strdup(src); // Копируем строку src и присваиваем указателю dup ее адрес
Пример программы с использованием функции strdup().

#include <stdio.h> // prinf()
#include <stdlib.h> // free()
#include <string.h> // strdup()
int main(){
    char *src = "My string. "; // Строка которую будем дублировать
    char *dup; // Указатель который будет показывать на скопированную строку
    dup = strdup(src); // Копируем строку
    printf("%s, &src = %p, &dup = %p \n", dup, src, dup); // "My string. , &src = 0000000000404000, &dup = 0000000000B01460"
    free(dup); // Освобождаем память
}
2023-03-15



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

atof() функция языка Си. Преобразует строку во float.
atoi() функция языка Си. Преобразует строку в int.
atoll() функция языка Си. Преобразует строку в long long.
sprintf_s() функция языка Си. Преобразование типа в строку.
strcat() функция языка Си. Сложение (конкатенация) строк.
strchr() функция языка Си. Поиск символа в строке.
strcpy() функция языка Си. Копирование строки.
strdup() функция языка Си. Копирование строки с выделением памяти.
Строки в Си. Основные функции.
strlen() функция языка Си. Определение длины строки.
strncat() функция языка Си. Объединение двух строк с ограничением длины.
strncpy() функция языка Си. Копирование строки с ограничением длины.
strstr() функция языка Си. Нахождение подстроки в строке.
strtod() функция языка Си. Преобразование строки в double.