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; }
[править] Внешние ссылки
- strdup(1) (англ.)en:String.h