#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)



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS