「C言語/標準ライブラリ/stdlib.h」の版間の差分
削除された内容 追加された内容
s/source/syntaxhighlight/g, +aligned_alloc、「例」のコードに、領域確保に失敗したのに、メッセージだけ出しそのままnullptrで処理を続けるバグ多数。 タグ: 2017年版ソースエディター |
→記憶域管理関数: cleanup タグ: 2017年版ソースエディター |
||
320 行
C言語では、calloc関数やmalloc関数を用いて、メモリ領域を占有できる。このような事を、メモリ領域の確保といい、また、ヒープ (heap) という。通常、下記のようにポインタの宣言の際に修飾として、calloc関数やmalloc関数を使用する。
使用が終わったら、free関数を使うことにより、(callocやmallocが)占有していたメモリを解放できる。
free関数を使わないでいると、メモリが占有されたままで残りつづける可能性があり、メモリ不足になる。このような、メモリの解放し忘れによるメモリ不足のことをメモリリークという。
aligned_allocもcallocもmallocも、メモリ領域の占有に成功した場合、返却値として、占有に成功したメモリ領域の先頭アドレスを返却する。占有に失敗した場合、空ポインタを返却する。
|