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

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
390 行
=== calloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.1 calloc関数」</ref>
*; 形式
:<syntaxhighlight lang=c>
#include <stdlib.h>
void *calloc(size_t nmemb, size_t size);
</syntaxhighlight>
*; 引数
:nmenb 個数
:size サイズ
*; 返却値
:割り付けられた領域の先頭へのポインタ。領域の割り付けができなかったときは、空ポインタ。
*; 機能
:calloc関数とは、大きさがsizeであるオブジェクトのnmemb個の配列の領域を割り付ける関数である。
:その領域のすべてのビットは、0で初期化する。
*;
:<syntaxhighlight lang=c>
#include <stdio.h>
#include <stdlib.h>
428 行
=== free関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.2 free関数」</ref>
*; 形式
:<syntaxhighlight lang=c>
#include <stdlib.h>
void free(void *ptr);
</syntaxhighlight>
*; 引数
:ptr
*; 返却値
:なし
*; 機能
:free関数とは、ptrが指す領域を解放し、その後の割り付けに使用できるようにする関数である。
:ptrが空ポインタの場合、何もしない。
:それ以外の場合で、実引数がcalloc関数、malloc関数若しくはrealloc関数によって以前に返されたポインタと一致しないとき、又はその領域がfree若しくはreallocの呼び出しによって解放されているとき、その動作は未定義である。
*;
[[#calloc関数]]、[[#malloc関数]]、[[#realloc関数]]を参照せよ。
 
=== malloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.3 malloc関数」</ref>
*; 形式
:<syntaxhighlight lang=c>
#include <stdlib.h>
void *malloc(size_t size);
</syntaxhighlight>
*; 引数
:size サイズ
*; 返却値
:割り付けられた領域の先頭へのポインタ。領域の割り付けができなかったときは、空ポインタ。
*; 機能
:malloc関数とは、大きさがsizeであるオブジェクトの領域を割り付ける関数である。
:割り付けられたオブジェクトの値は不定である。
*;
:<syntaxhighlight lang=c>
#include <stdio.h>
#include <stdlib.h>
485 行
=== realloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.4 realloc関数」</ref>
*; 形式
:<syntaxhighlight lang=c>
#include <stdlib.h>
void *realloc(void *ptr, size_t size);
</syntaxhighlight>
*; 引数
:ptr
:size
*; 返却値
:新しいオブジェクトへのポインタを返す。新しいオブジェクトの割り付けができなかった場合、空ポインタを返す。
*; 機能
:realloc関数とは、ptrが指す古いオブジェクトを解放し、大きさがsizeである新しいオブジェクトへのポインタを返す関数である。
:新しいオブジェクトの内容は、新しいオブジェクトの大きさと古いオブジェクトの大きさのうち小さいほうの大きさまでの部分で、解放する前の古いオブジェクトの内容と同じである。
503 行
:それ以外の場合で、ptrがcalloc関数、malloc関数若しくはrealloc関数によって以前に返されたポインタと一致しないとき、又はその領域がfree若しくはreallocの呼び出しによって解放されているとき、その動作は未定義である。
:新しいオブジェクトに対する記憶域の割り付けができなかった場合、古いオブジェクトは解放されずその値は変化しない。
*;
:<syntaxhighlight lang=c>
#include <stdio.h>
#include <stdlib.h>