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
-
Cプログラミングでの静的メモリ割り当てとはどういう意味ですか?
メモリは次の2つの方法で割り当てることができます- 静的メモリ割り当て 静的変数は、固定サイズの割り当てられたスペースの1つのブロックで定義されます。一度割り当てられると、解放されることはありません。 プログラムで宣言された変数にメモリが割り当てられます。 アドレスは「&」演算子を使用して取得でき、ポインタに割り当てることができます。 メモリはコンパイル時に割り当てられます。 スタックを使用して、メモリの静的割り当てを維持します。 この割り当てでは、メモリが割り当てられると、メモリサイズは変更できません。 効率は劣ります。 変数の最終的なサイズは、
-
Cプログラムのさまざまなタイプの式を説明する
式は、演算子とオペランドの組み合わせであり、単一の値になります。オペランドと呼ばれるデータ項目に対して演算を実行します。演算子は、データに対して実行する操作を示します。 たとえば、z =3 + 2 * 1 z =5 一次表現 −これは、名前、定数、または括弧で囲まれた式にすることができるオペランドです。例− c =a +(5 * b); 接尾辞式 −接尾辞式では、演算子はオペランドの後にあります。例-ab+ プレフィックス式 −接頭辞式の場合、演算子はオペランドの前にあります。例-+ab 単項式 −1つの演算子と1つのオペランドが含まれています。例-a+