C++:C標準ライブラリと主な関数のリスト(1) stdlib.h

C言語の標準ライブラリの中から、汎用的な用途の関数がセットになっているstdlib.hをまとめました。

stdlib.h

特に分類されない汎用的な関数の集まり。 メモリ関連、プロセス関連、変換など。

malloc

書式void *malloc(size_t n);
引数size_t(確保するメモリサイズ)
戻り値確保したメモリのアドレス/確保できなかった場合はnull
機能メモリを動的に確保する

calloc

書式void *calloc(size_t int nmem, size_t elsize);
引数size_t int nemem(要素数)/size_t elsize(1要素のサイズ)
戻り値確保したメモリのアドレス/確保できなかった場合はnull
機能メモリを動的に確保する/確保したメモリはゼロクリアされる
注意callocで確保したメモリ領域はfreeで開放する

realloc

書式void *realloc(void *ptr, size_t size);
引数void *ptr(確保したメモリのアドレス/size_t size(新しいメモリサイズ)
戻り値確保したメモリのアドレス/確保できなかった場合はnull
機能確保したメモリサイズを変更する(中身は維持)
補足メモリアドレスが変更される可能性があることに注意

free

書式void free(void *p);
引数void *p(確保したメモリのアドレス)
機能動的に確保したメモリを解放

abs

書式int abs(int n);
引数int n(数値)
戻り値数値の絶対値
機能絶対値を求める

labs

書式long labs(long n);
引数long n(数値)
戻り値数値の絶対値
機能絶対値を求める

atof

書式double atof(const char *s);
引数const char *s(数字を含む文字列)
戻り値変換後の値/変換できない場合は0
機能数字を含む文字列を実数値に変換する

atoi

書式int atoi(const char *s);
引数const char *s(数字を含む文字列)
戻り値変換後の値/変換できない場合は0
機能数字を含む文字列を整数値に変換する

atol

書式long atol(const char *s);
引数const char *s(数字を含む文字列)
戻り値変換後の値/変換できない場合は0
機能数字を含む文字列を整数値に変換する

strtod

書式double strtod(const char *s, char **endptr);
引数const char *s(数字を含む文字列/char **endptr(終了位置のアドレス)
戻り値変換後の値/変換できない場合は0
機能数字を含む文字列を実数値に変換する

strtol

書式long strtol(const char *s, char **endptr, int base);
引数const char *s(数字を含む文字列)/char **endptr(終了位置のアドレス)/int base(数値の基数・2進数や16進数)
戻り値変換後の値/変換できない場合は0
機能数字を含む文字列を整数値に変換する

strtoul

書式unsigned long strtoul(const char *s, char **endptr, int base);
引数const char *s(数字を含む文字列)/char **endptr(終了位置のアドレス)/int base(数値の基数・2進数や16進数)
戻り値変換後の値/変換できない場合は0
機能数字を含む文字列を符号無し整数値に変換する

div

書式div_t div(int num, int denom);
引数int num(割られる数)/int denom(割る数)
戻り値割り算の結果
機能商と余りを同時に計算する
構造体div_t(構造体)int quot(商)/int rem(余り)
補足divより、演算子 / や % を使うことを推奨

ldiv

書式ldiv_t ldiv(long num, long denom);
引数long num(割られる数割る数)
戻り値割り算の結果
機能商と余りを同時に計算
構造体ldiv_t.(構造体)/long quot(商)/ long rem(余り)
補足ldivより、演算子 / や % を使うことを推奨

rand

書式int rand(void);
戻り値ランダムな値
機能乱数を得る
使用法#define random(min,max) ((min)+(int)(rand()/(float)rand_max*((max)-(min)+1)))
とすれば、min 〜 max 間の乱数を得られる。

srand

書式void srand(unsigned int seed);
引数unsigned int seed(乱数系列の初期値)
機能乱数系列の初期値を与える
使用法srand((unsigned int)time(0));

exit

書式void exit(int n);
引数int n(終了コード)/exit_success は正常終了、exit_failure は異常終了
機能プログラムを終了させる

abort

書式void abort(void);
機能プログラムを異常終了させる
補足エラーが発生したときの終了に使用する

atexit

書式int atexit(void (*func)(void));
引数void (*func)(void)(関数のアドレス)
戻り値成功した場合は0/失敗した場合は0以外
機能プログラム終了時に実行する関数を登録する

getenv

書式char *getenv(const char *name);
引数const char *name(名前)
戻り値値を格納した文字列の先頭アドレス/見つからない場合はnull
機能環境変数を取得する

bsearch

書式void *bsearch(const void *key, const void *base,
size_t nmemb,size_t size, int (*compar)(const void *x, const void *y));
引数const void *key(探す値)/const void *base(配列の先頭探索数)/size_t nmemeb(1要素のサイズ)/int (*compar)(const void *x, const void *y)(比較関数のアドレス)
戻り値見つかった要素のアドレス/見つからない場合はnull
機能2分探索を行う。データは昇順に整列されていなくてはならない。
比較比較関数は x > yの場合は正/x = yの場合は0/x < yの場合は負を返すこと

qsort

書式void qsort(void *base, size_t nel, size_t width,
int(*compar)(const void *x, const void *y));
引数void *base(配列の先頭)/size_t nel(整列個数)/size_t width(1要素のサイズ)/int(*compar)(const void *x, const void *y)(比較関数のアドレス)
機能配列を昇順に整列(クイックソート)する
比較比較関数は、x > yの場合は正/x = yの場合は0/x < yの場合は負を返すこと

system

書式int system(const char *string);
引数const char *string(コマンド文字列)
戻り値処理系のコマンド依存/コマンドを実行できなかった場合は-1。
機能処理系が用意しているコマンドを実行する
補足コマンドは処理系が異なると互換性がない
: nullを指定すると、コマンドが利用できない環境では0を返す

さいごに

この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから

Related Contents

Pickup Contents