本章重点
1.为什么存在动态内存分配
2.动态内存函数的介绍
3.malloc free calloc realloc
4.常见的动态内存错误
一.为什么存在动态内存分配
二.动态内存函数的介绍
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main()
{
//开辟四十个字节的空间用来存放整形
int* p = (int*)malloc(40);
//存放1~10
int i = 0;
//记得判断p是否为空指针
if (p == NULL)
{
printf("%s\n", strerror(errno));
return 1;
}
for (i = 0;i < 10;i++)
{
p[i] = i + 1;
}
for (i = 0;i < 10;i++)
{
printf("%d ",p[i]);
}
//一定记得开辟完内存记得释放,以及置为空指针。
free(p);
p = NULL;
return 0;
}
int main()
{
int* p = (int*)calloc(10, sizeof(int));
if (p == NULL)
{
printf("%s\n", strerror(errno));
return 1;
}
free(p);
p = NULL;
return 0;
}