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

削除された内容 追加された内容
preタグをsourceタグに修正
→‎記憶域管理関数: C言語では、calloc関数やmalloc関数を用いて、メモリ領域を占有できる。このような事を、メモリ領域の確保といい、また、ヒープ (heap) という。通常、下記のようにポ
316 行
== 記憶域管理関数 ==
<ref>『JISX3010:2003』p.226「7.20.3 記憶域管理関数」</ref>
 
C言語では、calloc関数やmalloc関数を用いて、メモリ領域を占有できる。このような事を、メモリ領域の確保といい、また、ヒープ (heap) という。通常、下記のようにポインタの宣言の際に修飾として、calloc関数やmalloc関数を使用する。
 
使用が終わったら、free関数を使うことにより、(callocやmallocが)占有していたメモリを解放できる。
 
free関数を使わないでいると、メモリが占有されたままで残りつづける可能性があり、メモリ不足になる。このような、メモリの解放し忘れによるメモリ不足のことをメモリリークという。
 
よく、プログラム解説書では、callocやmallocなどによるメモリ確保は、よく借金に例えられる。借金をしたら、あとで返さないといけないように、メモリを確保したら、あとで解放しないとけいない。
 
:(※ 個人的な意見: ) このように、メモリ確保には注意事項が必要なので、もしcallocやmallocを使う必要がないなら、わざわざ使わなくても良いだろう。
 
callocもmallocも、メモリ領域の占有に成功した場合、返却値として、占有に成功したメモリ領域の先頭アドレスを返却する。占有に失敗した場合、空ポインタを返却する。
 
 
=== calloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.1 calloc関数」</ref>