这里我将会在下面讲述一下,C语言中的动态内存分配,
知识总结:
1.在申请好空间之后,我们必须要释放申请空间,不然会造成内存泄露
2.free在释放内存之后要将内存指针设置为NULL,不然会产生野指针
3.使用动态内存的常见错误:判断指针是否为NIULL,直接引用、开辟内存的越界访问、对非动态内存的free释放、对一块动态内存的多次释放、没有对动态内存的释放,下面有详细的例子
一、动态内存分配的存在必要
我们在使用数组时,一旦声明,它们的内存大小就已经确定,不能改变大小,就可能造成内存不足或者内存浪费的问题。
二、动态内存函数的介绍
2.1 malloc与free
malloc的使用当中我们要知道的:
1.malloc申请的是连续的空间,返回的是该指向该空间的指针
2.开辟成功,即返回该指向该空间的指针,开辟失败,返回空指针,所以在使用前我们需要进行判断
3.返回的指针类型是void*,所以我们在使用当中要强制类型转化为我们使用的类型
4.它的函数参数就是我们要开辟的空间大小,以字节为单位
free的使用:
1.他几乎与动态内存的申请成对出现,专门用来做动态内存的释放
2.如果它的参数是非动态内存的指针,它不会进行操作
2.2 calloc函数
相比mal