C++:C標準ライブラリと主な関数のリスト(1) stdlib.h
C言語の標準ライブラリの中から、汎用的な用途の関数がセットになっているstdlib.hをまとめました。
INDEX
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で共有していただければ幸いです。