动态内存管理
关于动态内存管理,重点就是!!动态!!,这两个字,我们在之前学习了简单的内存开辟
int arr[10]={
0}; //开辟了40个静态字节
char A='d'; //开辟了一个字节
这都是我们之前所用到的,也是最简单的.但是它所开辟的字节数是固定的,不能随着内部数据增加,而是这个内存变大,在会解决一些比较大的项目的时候就出先了比较大的BUG,所以我们就需要用到这里要说的动态内存,我们这里有四个函数需要进行理解,如下:
1.malloc函数
向内存申请一段连续的动态内存,并且返回对应的指针,就是malloc 函数
void* malloc(size_t size);
直接例题理解:
void func1(){
//这里的INT_MAX是系统自身的一个宏定义,当申请的内存过大无法申请出来时,会返回NULL
int* p = (int*)malloc(INT_MAX / 4); //将malloc 申请的内存转成整型的动态内存,并赋给p指针
*p = 100; //赋值
printf("%p %d\n",p