【C/C++】基础知识之动态申请内存空间new-delete 创作不易,本篇文章如果帮助到了你,还请点赞 支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c++系列专栏:C/C++零基础到精通 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
c语言内容💖: 专栏:c语言之路重点知识整合 【c语言】全部知识点总结 目录 一、c语言动态申请内存空间二、new-delete基本数据数组 三、new指针、new数组1.new 整型指针2.new 指针数组3.new 数组指针4.new 整型的二维数组5.new 函数指针 总结malloc-free和new-delete的区别 一、c语言动态申请内存空间 c语言堆区malloc相关知识点:【c语言】五大内存区域 | 堆区详解 使用malloc将堆区创建一个存储空间并把局部变量存放进去,该数据如果不被手动回收,就会一直存放在堆区中。 释放完后将指针p赋值为NULL,避免野指针的出现 在C++中,有一种全新的方式用来在堆区动态申请内存空间——和关键字
二、new-delete 使用关键字动态在堆区申请内存空间,关键字后 放 类型,返回的是对应类型的地址!!! 格式:new关键字 后加上类型名,在堆区申请该类型空间大小的空间 例如: 使用代替c语言中的释放空间 但是delete不是函数,关键字后直接加上要释放空间的指针地址,仍然将指针p赋值为NULL: 基本数据 在int类型后加,可以赋予初始值 如果未指定初始值,则初始值为0:
数组 申请一个int型数组的堆区空间: 同样可以赋予初始值: 与基本数据类型不同的是:在delete数组的时候,需要在指针前加用来代表数组,二维数组同样 中括号[]放在前面,代表整个数组 例如:
注: delete回收空间并不包含指针本身,而是指针指向的内存空间,同一块内存空间不要重复释放,除非指针已经被赋空,对空指针使用delete是安全的。 对栈区的内存空间不能使用delete来释放! 三、new指针、new数组 只需要牢记: 使用关键字动态在堆区申请内存空间,关键字后 放 类型,返回的是对应类型的地址!!! 就两种情况 new指针——new数组—— 1.new 整型指针 整型指针对应的地址:二级指针,因此为 2.new 指针数组 指针数组相关知识点:【c语言】指针数组 指针数组对应的地址也是二级指针,因此为 3.new 数组指针 数组指针相关知识点:【c语言】数组指针 数组指针的指针 在类型上再加: 4.new 整型的二维数组 指向二维数组的指针为:一维数组指针 5.new 函数指针 先随便定义一个函数: 指向函数指针的地址:在函数指针基础上加: 总结 malloc-free和new-delete的区别 是关键字,需要C++的编译器支持,是函数,需要头文件支持 申请空间不需要指定申请大小,根据类型自动计算,返回的是申请类型的地址,不需要强转,需要显式的指定申请空间的大小(字节),返回,需要强转成我们需要的类型。 申请空间的同时可以设置初始化,而malloc 需要手动赋值 和则不会调用构造、析构函数
在C语言中,常用的动态申请内存空间的函数是和,并且需要手动释放已分配的内存空间 而在C++中,可以使用new操作符来动态创建一个对象或一段对象数组 可以自动调用构造函数初始化对象,而操作符则会自动调用析构函数,释放分配的内存空间(后面会提到) 使用释放动态分配的对象数组时记得加上方括号,否则只会释放首个素并不会将整个数组的内存空间都释放掉。
大家的点赞、收藏、将是我更新的最大动力! 欢迎留言或私信建议或问题。 大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●’◡’●)
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/48861.html