动态存储分配
- 释义:c程序执行过程中只要有闲置的内存空间,就可申请“临时使用”,用完后在释放。
- 这种动态存储分配通过系统提供的库函数(包含在文件"stdio.h"文件里面的三个函数)实现。
- malloc(size) 无符号整形size(表示动态存储区中一块连续的空间) 。malloc函数的作用是分配size字节的内存
- size被成功被动态分配则返回一个指针,指向分配内存的起始地址。
- size未能成功的被动态分配,则返回NULL(0)
- ANSIC新规malloc函数返回值类型为:void *类型 使用时需转换
- calloc(元素数目,元素大小):这两个参数的积为分配所需动态内存空间的大小,返回一个指针
- free(指针类型):无返回值,指针指向内存释放空间
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,n;
int*p,*p0;
scanf("请输入测试数据;%d",&n);
p0=(int *)malloc(n * sizeof(int));
for(p=p0,i=0;i<n;i++)
scanf("%d",p++);
for(p=p0,i=0;i<n;i++)
printf("%d\n",*p++);
free(p0);
return system("pause");
}