Strdup

Az strdup egy nem szabványos C programozási nyelv  függvény , amely másolatot készít a megadott null-végződésű karakterláncról a kupacban ( malloc használatával ), és egy mutatót ad vissza rá. A Free parancsot meg kell hívni a létrehozott másolat által használt terület felszabadításához . A szolgáltatás a BSD -ben jelent meg , benne van a POSIX -ben, de nem része az ANSI/ISO szabványnak, bár szinte minden fordító támogatja.

Funkció

A prototípus leírása a fejlécfájlban található string.h:

char* strdup (const char *src);

Visszatérési érték

Egy mutató a karakterlánc másolatára. Ha a memóriafoglalás sikertelen, nem jön létre másolat, és a függvény NULL-t ad vissza.

Használati példa

#include <karakterlánc.h> #include <stdio.h> /* a printf()-hez */ #include <malloc.h> /* ingyen() */ charbuf [ 1024 ] ; char * arr [ 300 ]; int main () { int i , k ; scanf ( "%d \n " , & k ); ha ( k > 300 ) k = 300 ; /* olvass el k sort és add össze */ for ( i = 0 ; i < k ; i ++ ) { fgets ( buf , strlen ( arr [ i ]), stdin ); arr [ i ] = strdup ( buf ); } /* kinyomtatni */ for ( i = 0 ; i < k ; i ++ ) printf ( "sor %3d -> %s \n " , i + 1 , arr [ i ]); /* memória törlése */ for ( i = 0 ; i < k ; i ++ ) szabad ( arr [ i ]); return 0 ; }

Linkek