Strdup


Strdup

strdup


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;
}

Ссылки


Wikimedia Foundation. 2010.

Смотреть что такое "Strdup" в других словарях:

  • strdup — strdup  нестандартная функция языка программирования Си, создающая копию указанной нуль терминированной строки в куче (используя malloc) и возвращающая указатель на неё. Чтобы освободить место, используемое созданной копией, необходимо… …   Википедия

  • Interpreter — Ein Interpreter (im Sinne der Softwaretechnik) ist ein Computerprogramm, das einen Programm Quellcode im Gegensatz zu Assemblern oder Compilern nicht in eine auf dem System direkt ausführbare Datei umwandelt, sondern den Quellcode einliest,… …   Deutsch Wikipedia

  • Interpreter (Computer) — Ein Interpreter (im Sinne der Softwaretechnik) ist ein Computerprogramm, das einen Programm Quellcode im Gegensatz zu Assemblern oder Compilern nicht in eine auf dem System direkt ausführbare Datei umwandelt, sondern den Quellcode einliest,… …   Deutsch Wikipedia

  • Interpretersprache — Ein Interpreter (im Sinne der Softwaretechnik) ist ein Computerprogramm, das einen Programm Quellcode im Gegensatz zu Assemblern oder Compilern nicht in eine auf dem System direkt ausführbare Datei umwandelt, sondern den Quellcode einliest,… …   Deutsch Wikipedia

  • Dirent.h — is the header in the C POSIX library for the C programming language that contains constructs that facilitate directory traversing. The function is not part of the C standard, but is considered pseudo standard and is reliably portable between… …   Wikipedia

  • Varianten der Programmiersprache C — Seit dem Erscheinen der Programmiersprache C im Jahre 1972 wurden mehrere Varianten (Spezifikationen und internationale Standards) veröffentlicht. Inhaltsverzeichnis 1 K R C 2 C89, C90 2.1 Wichtigste Neuerungen von C90 …   Deutsch Wikipedia

  • String.h — Demande de traduction string.h → …   Wikipédia en Français

  • String.h — Saltar a navegación, búsqueda string.h es un archivo de la Biblioteca estándar del lenguaje de programación C que contiene la definición de macros, constantes, funciones y tipos de utilidad para trabajar con cadenas de caracteres y algunas… …   Wikipedia Español

  • Objective-C — Класс языка: объектно ориентированный, мультипарадигмальный: рефлексивно ориентированный Появился в: 1986 Автор(ы): Бред Кокс Типизация данных: нестрогая, статическая / динамическая …   Википедия

  • Нуль-терминированная строка — или C строка (от названия языка Си) или ASCIZ строка (от названия директивы ассемблера .asciz) способ представления строк в языках программирования, при котором вместо введения специального строкового типа используется массив символов, а концом… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.