#navi(../) * 指定したバイトの指定個数分メモリを確保する・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)