strdup

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск


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>                     /* для mfree() */
 
char  buf[1024];
char  *arr[300];
 
int main()
{
    int i,j,k;
 
    scanf("%d\n",&k);
    if(k>1024) k=1024;
 
    /* читаем 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;
}

Внешние ссылки

es:String.h fr:String.h it:String.h

Источник — «http://www.sbup.com/wiki/Strdup»
Личные инструменты

Served in 0.079 secs.