C 语言动态内存分配示例程序
cserver side programmingprogramming更新于 2024/11/23 2:09:00
问题
使用 C 语言动态内存分配从数组中找出最大值和最小值。
解决方案
动态内存分配使 C 程序员能够在运行时分配内存。
我们用来在运行时动态分配内存的不同函数是 −
malloc () − 在运行时以字节为单位分配一个内存块。
calloc () − 在运行时分配连续的内存块。
realloc () − 用于减少(或)扩展分配的内存。
free () −释放先前分配的内存空间。
使用动态内存分配查找数组中的最大和最小数字
查找数组中最大元素的逻辑 −
首先为数组分配内存
p=(int*)malloc(n*sizeof(int)); //动态内存分配 for(i=0;i<n;i++){ scanf("%d",p+i); if(*(p+i)>max) //查找最大元素 max=*(p+i); }
查找数组中最小元素的逻辑 −
for(i=0;i<n;i++){ scanf("%d",p+i); if(*(p+i)<min) //查找最小元素 min=*(p+i); }
示例
#include<stdio.h> int main(){ int *p,n,i,max=-32768,min=32767; printf("
输入大小:"); scanf("%d",&n); p=(int*)malloc(n*sizeof(int)); //动态内存分配 printf("
输入元素:"); for(i=0;i<n;i++){ scanf("%d",p+i); if(*(p+i)>max) //查找最大元素 max=*(p+i); if(*(p+i)<min) //查找最小元素 min=*(p+i); } printf("
maximum=%d
minimum=%d",max,min); free(p); }
输出
输入大小: 输入元素: maximum=-32768 minimum=32767