C言語のCallocとは何ですか?

王林
リリース: 2023-09-10 19:45:02
転載
1788 人が閲覧しました

C ライブラリのメモリ割り当て関数 void *calloc(size_t niitems, size_t size) は、要求されたメモリを割り当て、そのメモリへのポインタを返します。

malloc と calloc の違いは、malloc はメモリを 0 に設定しないのに対し、calloc は割り当てられたメモリを 0 に設定することです。

メモリ割り当て関数

メモリは、以下に説明する 2 つの方法で割り当てることができます。

メモリがコンパイル時に割り当てられた後、実行中は変更不可。メモリの不足または無駄なメモリの問題が発生する可能性があります。

解決策は、メモリを動的に作成することです。つまり、プログラムの実行中にユーザーの要件に従ってメモリを作成します。

動的メモリ管理の標準ライブラリ関数は次のとおりです。 -

  • malloc ( )
  • calloc ( )
  • realloc ( )
  • free ( )

Calloc ( ) function

  • この関数は、実行時に連続したメモリ ブロックを割り当てるために使用されます。

  • これは、配列用に特別に設計されています。

  • 割り当てられたメモリのベース アドレスを指す void ポインタを返します。

calloc() 関数の構文は次のとおりです。 -

void *calloc ( numbers of elements, size in bytes)
ログイン後にコピー

Example

次の例は、calloc() 関数の使用法を示しています。 。

int *ptr;
ptr = (int * ) calloc (500,2);
ログイン後にコピー

ここでは、サイズ 2 バイトのメモリ ブロックが 500 個連続して割り当てられます。割り当てられた合計メモリ = 1000 バイト。

C言語のCallocとは何ですか?< /p>

int *ptr;
ptr = (int * ) calloc (n, sizeof (int));
ログイン後にコピー

サンプル プログラム

以下は、動的メモリ割り当て関数 Calloc を使用してセット内の偶数と奇数の合計を計算する C プログラムです。要素の。

オンライン デモンストレーション

#include<stdio.h>
#include<stdlib.h>
void main(){
   //Declaring variables, pointers//
   int i,n;
   int *p;
   int even=0,odd=0;
   //Declaring base address p using Calloc//
   p = (int * ) calloc (n, sizeof (int));
   //Reading number of elements//
   printf("Enter the number of elements : ");
   scanf("%d",&n);
   /*Printing O/p -
   We have to use if statement because we have to check if memory
   has been successfully allocated/reserved or not*/
   if (p==NULL){
      printf("Memory not available");
      exit(0);
   }
   //Storing elements into location using for loop//
   printf("The elements are : </p><p>");
   for(i=0;i<n;i++){
      scanf("%d",p+i);
   }
   for(i=0;i<n;i++){
      if(*(p+i)%2==0){
         even=even+*(p+i);
      } else {
         odd=odd+*(p+i);
      }
   }
   printf("The sum of even numbers is : %d</p><p>",even);
   printf("The sum of odd numbers is : %d</p><p>",odd);
}
ログイン後にコピー

出力

上記のプログラムを実行すると、次の結果が生成されます -

Enter the number of elements : 4
The elements are :
12
56
23
10
The sum of even numbers is : 78
The sum of odd numbers is : 23
ログイン後にコピー

以上がC言語のCallocとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート