「C言語/標準ライブラリ/stdlib.h」の版間の差分

削除された内容 追加された内容
編集の要約なし
1 行
<ref>『JISX3010:2003』p.220「7.20 一般ユーティリティ<stdlib.h>」</ref>
== malloc関数 ==
 
<pre>
== 数値変換関数 ==
修正中
<ref>『JISX3010:2003』p.221「7.20.1 数値変換関数」</ref>
</pre>
=== atof関数 ===
*用いる領域を動的に定める
<ref>『JISX3010:2003』p.221「7.20.1.1 atof関数」</ref>
C言語にはmallocという標準関数があります。この関数は、利用者が用いることができるメモリ領域から、指定された大きさの領域を切り出す関数です。この関数は切り出した領域のポインタを返すため、それらの領域を用いるために、ポインタを用いる必要があります。mallocは多くの場合、sizeof演算子と組み合わせて用いられます。sizeof演算子はC言語の型を引数に取り、型の大きさを表すバイト数を返すオペレータです。例えば、int型へのポインタを返すmalloc文は次のようになります。
=== atoi, atol及びatoll関数 ===
#include <stdlib.h>
<ref>『JISX3010:2003』p.221「7.20.1.2 atoi, atol及びatoll関数」</ref>
int *a;
=== strtod, strtof及びstrtold関数 ===
a = malloc(sizeof(int));
<ref>『JISX3010:2003』p.222「7.20.1.3 strtod, strtof及びstrtold関数」</ref>
mallocは、用いたい領域の大きさをプログラムの中で定めたい時などに用いられます。例えば、利用者の入力を見て用いる領域を変化させる場合等がこの例です。
=== strtol, strtoll, strtoul及びstrtoull関数 ===
また、mallocによって切り出された領域は、プログラマによって切り出された領域であるので、例え使われなくなっても自動的に解放されることはありません。(ただし、プログラムが終了した時は別で、この時には全ての領域が解放されます。)そのため、切り出した領域を解放する方法が必要となります。この目的では、freeという標準関数を用いることが出来ます。ここでは、上の例の続きで、
<ref>『JISX3010:2003』p.223「7.20.1.4 strtol, strtoll, strtoul及びstrtoull関数」</ref>
free(a);
 
とすることで、切り出した領域を解放することが出来ます。
== 疑似乱数列生成関数 ==
<ref>『JISX3010:2003』p.225「7.20.2 疑似乱数列生成関数」</ref>
=== rand関数 ===
<ref>『JISX3010:2003』p.225「7.20.2.1 rand関数」</ref>
=== srand関数 ===
<ref>『JISX3010:2003』p.225「7.20.2.2 srand関数」</ref>
 
 
== 記憶域管理関数 ==
<ref>『JISX3010:2003』p.226「7.20.3 記憶域管理関数」</ref>
=== calloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.1 calloc関数」</ref>
=== free関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.2 free関数」</ref>
=== malloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.3 malloc関数」</ref>
=== realloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.4 realloc関数」</ref>
 
== 環境に関連する関数 ==
<ref>『JISX3010:2003』p.227「7.20.4 環境に関連する関数」</ref>
=== abort関数 ===
<ref>『JISX3010:2003』p.227「7.20.4.1 abort関数」</ref>
=== atexit関数 ===
<ref>『JISX3010:2003』p.227「7.20.4.2 atexit関数」</ref>
=== exit関数 ===
<ref>『JISX3010:2003』p.227「7.20.4.3 exit関数」</ref>
=== _Exit関数 ===
<ref>『JISX3010:2003』p.228「7.20.4.4 _Exit関数」</ref>
=== getenv関数 ===
<ref>『JISX3010:2003』p.228「7.20.4.5 getenv関数」</ref>
=== system関数 ===
<ref>『JISX3010:2003』p.228「7.20.4.6 system関数」</ref>
 
== 探索及び整列ユーティリティ ==
<ref>『JISX3010:2003』p.229「7.20.5 探索及び整列ユーティリティ」</ref>
=== bsearch関数 ===
<ref>『JISX3010:2003』p.229「7.20.5.1 bsearch関数」</ref>
=== qsort関数 ===
<ref>『JISX3010:2003』p.230「7.20.5.2 qsort関数」</ref>
 
== 整数算術関数 ==
<ref>『JISX3010:2003』p.230「7.20.6 整数算術関数」</ref>
=== abs, labs, 及びllabs関数 ===
<ref>『JISX3010:2003』p.230「7.20.6.1 abs, labs, 及びllabs関数」</ref>
=== div, ldiv 及びlldiv関数 ===
<ref>『JISX3010:2003』p.230「7.20.6.2 div, ldiv, 及びlldiv関数」</ref>
 
== 多バイト文字・ワイド文字変換関数 ==
<ref>『JISX3010:2003』p.231「7.20.7 多バイト文字・ワイド文字変換関数」</ref>
=== mblen関数 ===
<ref>『JISX3010:2003』p.231「7.20.7.1 mblen関数」</ref>
=== mbtowc関数 ===
<ref>『JISX3010:2003』p.231「7.20.7.2 mbtowc関数」</ref>
=== wctomb関数 ===
<ref>『JISX3010:2003』p.232「7.20.7.3 wctomb関数」</ref>
 
== 多バイト文字列・ワイド文字列変換関数 ==
<ref>『JISX3010:2003』p.232「7.20.8 多バイト文字列・ワイド文字列変換関数」</ref>
=== mbstowcs関数 ===
<ref>『JISX3010:2003』p.232「7.20.8.1 mbstowcs関数」</ref>
=== wcstombs関数 ===
<ref>『JISX3010:2003』p.233「7.20.8.2 wcstombs関数」</ref>
 
== 脚注 ==
<references/>