动态内存分配
文章平均质量分 76
楠鹤晴
C++后端优质创作青年
展开
-
【C++之动态内存管理】深剖new和delete的本质
平时我们在函数中创建的变量属于局部变量,其所需要的空间是在栈上开辟的,但是由于栈的大小是有限的,并且比较小,所以很容易就会被用完。因此,我们不能一直在栈上开辟空间,需要学会到其他地方申请空间,比如:堆,堆的大小相比于栈就会比较大了,并且相比于栈上的变量,堆上的变量的生命周期更长。另外,在C语言中我们也学会了使用`malloc,calloc,realloc`等函数来向堆申请空间,那么C++为什么会再重新使用其他方法呢??这也是我们这篇文章需要回答的问题。原创 2023-02-05 18:14:17 · 566 阅读 · 4 评论 -
使用malloc calloc realloc函数时可能会出现的问题
1.对空指针进行解引用操作 就是我们在使用malloc calloc realloc这些函数时候,可能会出现申请空间失败的情况,当我们申请空间失败的时候,那么系统会给我们返回一个空指针,而如果我们没有对这些函数的返回值进行判断的话,就容易造成对空指针进行解引用,所以我们在使用这些函数的时候,一定要对这些函数的返回值进行判断 2.对动态内存开辟空间的越界访问 就是说我们利用这些函数在开辟空间的时候,开辟的空间大小也是有的,也就是说,当我们指定一个空间大小去开辟的时候,那么开辟的空间的大小也就确定下来了,所以.原创 2022-03-22 21:44:43 · 784 阅读 · 0 评论