Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語での動的メモリ割り当てに関するプログラム例


問題

Cで動的メモリ割り当てを使用して、配列から最大値と最小値を見つけます。

解決策

動的メモリ割り当てにより、Cプログラマーは実行時にメモリを割り当てることができます。

実行時にメモリを動的に割り当てるために使用したさまざまな関数は、-

です。
  • malloc()-実行時にメモリのブロックをバイト単位で割り当てます。

  • calloc()-実行時にメモリの連続ブロックを割り当てます。

  • realloc()-割り当てられたメモリを削減(または拡張)するために使用されます。

  • free()-以前に割り当てられたメモリスペースの割り当てを解除します。

動的メモリ割り当てを使用してアレイ内の最大数と最小数を見つける

配列内の最大要素を見つけるためのロジック-

最初にアレイにメモリを割り当てます

p=(int*)malloc(n*sizeof(int)); //dynamic memory allocation
for(i=0;i<n;i++){
   scanf("%d",p+i);
   if(*(p+i)>max) //finding max element
      max=*(p+i);
}

配列内の最小要素を見つけるためのロジック-

for(i=0;i<n;i++){
   scanf("%d",p+i);
   if(*(p+i)<min) //finding min element
      min=*(p+i);
}

#include<stdio.h>
int main(){
   int *p,n,i,max=-32768,min=32767;
   printf("\n enter size:");
   scanf("%d",&n);
   p=(int*)malloc(n*sizeof(int)); //dynamic memory allocation
   printf("\n enter elements:");
   for(i=0;i<n;i++){
      scanf("%d",p+i);
      if(*(p+i)>max) //finding max element
         max=*(p+i);
      if(*(p+i)<min) //finding min element
         min=*(p+i);
   }
   printf("\n maximum=%d\n minimum=%d",max,min);
   free(p);
}

出力

enter size:
enter elements:
maximum=-32768
minimum=32767

  1. Cプログラミングでの静的メモリ割り当てとはどういう意味ですか?

    メモリは次の2つの方法で割り当てることができます- 静的メモリ割り当て 静的変数は、固定サイズの割り当てられたスペースの1つのブロックで定義されます。一度割り当てられると、解放されることはありません。 プログラムで宣言された変数にメモリが割り当てられます。 アドレスは「&」演算子を使用して取得でき、ポインタに割り当てることができます。 メモリはコンパイル時に割り当てられます。 スタックを使用して、メモリの静的割り当てを維持します。 この割り当てでは、メモリが割り当てられると、メモリサイズは変更できません。 効率は劣ります。 変数の最終的なサイズは、

  2. Cプログラムのさまざまなタイプの式を説明する

    式は、演算子とオペランドの組み合わせであり、単一の値になります。オペランドと呼ばれるデータ項目に対して演算を実行します。演算子は、データに対して実行する操作を示します。 たとえば、z =3 + 2 * 1 z =5 一次表現 −これは、名前、定数、または括弧で囲まれた式にすることができるオペランドです。例− c =a +(5 * b); 接尾辞式 −接尾辞式では、演算子はオペランドの後にあります。例-ab+ プレフィックス式 −接頭辞式の場合、演算子はオペランドの前にあります。例-+ab 単項式 −1つの演算子と1つのオペランドが含まれています。例-a+