- 追加された行はこの色です。
- 削除された行はこの色です。
#navi(../)
#author("2017-04-30T10:49:13+09:00","","")
* 指定したバイトの指定個数分メモリを確保する・calloc [#x25a28c3]
指定したバイト数を指定した個数分、メモリを確保する関数としてcallocがあります。~
mallocとの違いは、個数指定の部分のあるかないかの違いがあります。~
以下にC言語サンプルソースを記します。
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
* 関連記事 [#xf2daa62]
-[[メモリの内容を指定した値で初期化する・memset>メモリ/メモリの内容を指定した値で初期化する・memset]]
-[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピーする・memcpy]]
-[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構造体の内容をコピーする・memcpyは使わない!]]
-[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・memcmp]]
-[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取得する・malloc]]
-[[動的メモリサイズを拡張する・realloc>メモリ/動的メモリサイズを拡張する・realloc]]
-[[malloc,calloc,reallocで取得したメモリを解放する・free>メモリ/malloc,calloc,reallocで取得したメモリを解放する・free]]
-[[指定した文字数分コピーする・memmove>メモリ/指定した文字数分コピーする・memmove]]
-[[指定したバイトの指定個数分メモリを確保する・calloc>メモリ/指定したバイトの指定個数分メモリを確保する・calloc]]
* callocの書式など [#f1e7f138]
以下にcallocの書式などについて記します。
-必要なインクルードファイル
#include <stdlib.h>
-callocの書式
void *calloc(size_t n, size_t size);
-戻り値~
取得したメモリのポインタ
-引数~
1つ目:個数を指定~
2つ目:サイズ(バイト)を指定
* callocのサンプルソース [#n87a3853]
以下にcallocを使用したCサンプルソースと実行結果を記します。
&ref(calloc.c); (改行コードLF)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *p;
int i;
p = calloc(10,sizeof(int));
if (p == NULL) {
perror("calloc() error!");
exit(EXIT_FAILURE);
}
for (i=0; i<10; i++) {
p[i] = i;
printf("p[%d] = %d\n", i, p[i]);
}
if (p != NULL) {
free(p);
p = NULL;
}
return 0;
}
コンパイルし実行した結果を以下に記します。
$ gcc calloc.c -o calloc
$ ./calloc
p[0] = 0
p[1] = 1
p[2] = 2
p[3] = 3
p[4] = 4
p[5] = 5
p[6] = 6
p[7] = 7
p[8] = 8
p[9] = 9
以上、callocのサンプルソースでした。
#htmlinsertpcsp(c-btm.html,c-sp.html)