一维动态数组一般会引用两个函数,来自“stdlib.h”
函数名:malloc
函数和形参类型:void * malloc(unsigned size);
功能:分配size字节的储存区
返回值:所分配的内存区地址,如内存不够,返回0
返回值:所分配的内存区地址,如内存不够,返回0
函数名:free
函数和形参类型:void *free(void * p);
功能:释放p所指的储存区
返回值:无
返回值:无
下面把0——9存到动态数组里输出来
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p = NULL;
int i,num = 10;
p = (int *) malloc(sizeof(int *) * num);//定义了一个num个大小为int的堆用于存放地址为p的地址
if(p == NULL) //动态分配内存后,必须检查函数malloc()的返回值,使用前不是NULL
{
printf("内存不足!");
exit(0);
}
for(i = 0; i < 10; i++)
{
*(p + i) = i;
}
for(i = 0; i < 10; i++)
{
printf("%d ", *(p + i));
}
free(p);//不用的内存就释放掉
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/b579bb9cec123302c8960145529162b6.png)