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

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎calloc関数: リファクタリング
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
496 行
 
=== malloc関数 ===
malloc関数は、sizeで指定されたサイズのオブジェクトのための領域を確保します。その値は不定です<ref name="jtc1-sc22-wg14-n1570-7.22.3.2">{{cite book
<ref>『JISX3010:2003』p.226「7.20.3.3 malloc関数」</ref>
| url = http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
| title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x
| page=348, §7.22.3.4 ''The malloc function''
| publisher = ISO/IEC}}</ref>。
 
; 形式
:<syntaxhighlight lang=c>
509 ⟶ 514行目:
:malloc関数とは、大きさがsizeであるオブジェクトの領域を割り付ける関数である。
:割り付けられたオブジェクトの値は不定である。
; [https://paiza.io/projects/Pn-sFmzHrggxBAZAXsR7ig?language=c 例] :<syntaxhighlight lang=c>
; 例
:<syntaxhighlight lang=c>
#include <stdio.h>
#include <stdlib.h> // for malloc() and free()
 
int main(void) {
const intsize_t size = 10;
{
int *p = (int *)malloc(sizeof(*p) * size);
int i, *p;
const int size=10;
 
if( (p=(int *)malloc(sizeof(int)*size))== NULL) {
printf("領域の割り付けができませんでした。\n");
exit(EXIT_FAILURE);
}
 
for (int i = 0,; i < size,; i++i)
p[i] = i;
 
printf("pの値:");
for (int i = 0; i < size; i++i)
printf("%d ", p[i]);
 
free(p);
}
</syntaxhighlight>
 
=== realloc関数 ===
<ref>『JISX3010:2003』p.226「7.20.3.4 realloc関数」</ref>