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

相关文章