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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP