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("
enter size:");    scanf("%d",&n);    p=(int*)malloc(n*sizeof(int)); //dynamic memory allocation    printf("
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("
maximum=%d
minimum=%d",max,min);    free(p); }

輸出

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

更新於: 09-Mar-2021

3K+ 瀏覽

啟動您的 職業

完成課程獲得認證

開始
廣告