WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

strdup — нестандартная функция языка программирования Си, создающая копию указанной нуль-терминированной строки в куче (используя malloc) и возвращающая указатель на неё. Чтобы освободить место, используемое созданной копией, необходимо вызвать free. Функция появилась в BSD, включена в POSIX, но не является частью стандартов ANSI/ISO, хотя поддерживается почти всеми компиляторами.

Функция

Прототип описан в заголовочном файле string.h:

char* strdup (const char *src);

  • src — указатель на исходную строку.

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

Указатель на копию строки. Если выделение памяти закончилось неудачей, то создания копии не происходит и функция возвращает NULL.

Пример использования

#include <string.h>
#include <stdio.h>                      /* для printf() */
#include <malloc.h>                     /* для free() */

char  buf[1024];
char  *arr[300];

int main()
{
    int i,k;

    scanf("%d\n",&k);
    if(k>300) k=300;

    /* читаем k строк и складываем их */
    for(i=0;i<k;i++) {
    	gets(buf);
    	arr[i]=strdup(buf);
    }
    /* выводим на печать */
    for(i=0;i<k;i++) printf("line %3d -> %s\n",i+1,arr[i]);
    /* чистим память */
    for(i=0;i<k;i++) free(arr[i]);

	return 0;
}

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии