1.对空指针进行解引用操作
就是我们在使用malloc calloc realloc这些函数时候,可能会出现申请空间失败的情况,当我们申请空间失败的时候,那么系统会给我们返回一个空指针,而如果我们没有对这些函数的返回值进行判断的话,就容易造成对空指针进行解引用,所以我们在使用这些函数的时候,一定要对这些函数的返回值进行判断
2.对动态内存开辟空间的越界访问
就是说我们利用这些函数在开辟空间的时候,开辟的空间大小也是有的,也就是说,当我们指定一个空间大小去开辟的时候,那么开辟的空间的大小也就确定下来了,所以我们在使用的时候一定要在这个大小的空间内使用,而不能超出这个范围,那么当我们发现使用的大小不够的时候,我们可以使用realloc函数进行调整,具体参照realloc函数的使用方法
3.对非动态内存开辟的空间进行free
这个的话,我们都知道,我们利用malloc calloc realloc函数开辟的空间是存放到堆区中的
而我们平时所定义的那些变量是存放在栈区的,存放在栈区中的这种变量的特点就是自动创建自动销毁,当我们调用结束时,这些变量所对应的空间就会被销毁,还给操作系统,所以,我们在栈区创建的变量是不需要我们手动去free的,它会在出来它的作用域之后自动销毁并且把它的空间还给操作系统
4.使用free释放一块动态内存开辟内存的一部分
就是说我们在使用malloc calloc realloc这样的函数开辟一块动态内存之后,我们需要创建一个合适的指针变量来接受返回的指针,然后我们在使用这个动态内存的时候,我们可能需要通过这个指针来访问我们的这块空间的时候如果我们移动了我们的这个指针,那么这个指针就不是指向我们的起始位置了,在后面我们就可能找不到我们的
使用malloc calloc realloc函数时可能会出现的问题
最新推荐文章于 2023-07-26 15:01:02 发布