在C编程中,动态内存分配是什么意思?
动态内存分配
执行时(运行时)的内存分配称为动态内存分配。
动态内存的功能calloc()和malloc()支持。
当函数返回值并将其分配给指针变量时,可以通过使用这些函数来动态分配内存空间。
在这种情况下,仅当程序单元处于活动状态时才分配变量。
它使用称为堆的数据结构来实现动态分配。
有内存可重用性,不需要时可以释放内存。
效率更高。
在这种内存分配方案中,执行速度比静态内存分配慢。
在此过程中,可以随时释放内存。
示例
以下程序使用动态内存分配函数计算一组元素中的偶数和奇数之和-
#include<stdio.h>输出结果#include<stdlib.h>
void main(){
//Declaring variables, pointers//
int i,n;
int *p;
int even=0,odd=0;
//Declaring base address p using malloc//
p=(int *)malloc(n*sizeof(int));
//Reading number of elements//
printf("输入元素数: ");
scanf("%d",&n);
/*Printing O/p -
We have to use if statement because we have to check if memory
has been successfully allocated/reserved or not*/
if (p==NULL){
printf("Memory not available");
exit(0);
}
//Storing elements into location using for loop//
printf("The elements are : \n");
for(i=0;i<n;i++){
scanf("%d",p+i);
}
for(i=0;i<n;i++){
if(*(p+i)%2==0){
even=even+*(p+i);
}else{
odd=odd+*(p+i);
}
}
printf("The sum of even numbers is : %d\n",even);
printf("The sum of odd numbers is : %d\n",odd);
}
输入元素数: 4The elements are :
35
24
46
12
The sum of even numbers is : 82
The sum of odd numbers is : 35
以上是 在C编程中,动态内存分配是什么意思? 的全部内容, 来源链接: utcz.com/z/314327.html