C语言中动态内存分配的示例程序
问题
使用C中的动态内存分配从数组中找出最大值和最小值。
解决方案
动态内存分配使C程序员可以在运行时分配内存。
我们用来在运行时动态分配内存的不同功能是-
malloc()-在运行时以字节为单位分配一块内存。
calloc()-在运行时分配连续的内存块。
realloc()-用于减少(或)扩展分配的内存。
free()-释放先前分配的内存空间。
使用动态内存分配查找数组中的最大和最小数目
查找数组中最大元素的逻辑-
首先为数组分配内存
p=(int*)malloc(n*sizeof(int)); //动态内存分配 for(i=0;imax) //寻找最大元素 max=*(p+i); }
在数组中查找最小元素的逻辑-
for(i=0;i示例
#includeint main(){ int *p,n,i,max=-32768,min=32767; printf("\n enter size:"); scanf("%d",&n); p=(int*)malloc(n*sizeof(int)); //动态内存分配 printf("\n enter elements:"); for(i=0;i max) //寻找最大元素 max=*(p+i); if(*(p+i) 输出结果 enter size: enter elements: maximum=-32768 minimum=32767