MENU
コンテンツ再構築中

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で共有していただければ幸いです。

Please share it!
  • URLをコピーしました!
  • URLをコピーしました!
INDEX