社区
C++ 语言
帖子详情
动态申请内存和静态申请内存的根本区别在哪里了?
chenxidu
2008-11-06 04:06:30
在一个函数的内部:
char name[32] = "回帖也是善举" ; //--静态数组
char *name = new char[32] //--动态申请内存
memset(name ,0,sizeof(name));
strcpy(name ,"回帖也是善举");
想问一下,这两种申请内存的根本区别在哪里了?他们二者的利弊各是什么了?
...全文
1254
10
打赏
收藏
动态申请内存和静态申请内存的根本区别在哪里了?
在一个函数的内部: char name[32] = "回帖也是善举" ; //--静态数组 char *name = new char[32] //--动态申请内存 memset(name ,0,sizeof(name)); strcpy(name ,"回帖也是善举"); 想问一下,这两种申请内存的根本区别在哪里了?他们二者的利弊各是什么了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
帅得不敢出门
2008-11-06
打赏
举报
回复
1
前一个在栈区
后一个在堆区
栈与堆的区别搜一下就明白了.
栈系统负责清理
堆由程序员自己负责释放
jackzhhuang
2008-11-06
打赏
举报
回复
楼上有人说了,存储区域不一样,new出来的什么时候释放由你决定,栈里面分配的你管不着,函数结束出栈的时候由系统回收。
我看你有戏
2008-11-06
打赏
举报
回复
[Quote=引用楼主 chenxidu 的帖子:]
在一个函数的内部:
char name[32] = "回帖也是善举" ; //--静态数组
char *name = new char[32] //--动态申请内存
memset(name ,0,sizeof(name));
strcpy(name ,"回帖也是善举");
想问一下,这两种申请内存的根本区别在哪里了?他们二者的利弊各是什么了?
[/Quote]
new出来的东西一定需要delete,否则会发生内存泄露
理论上是静态数组处理的速度快点
在已知数组长度的情况下请使用静态数组
在数组长度需要变化的时候,请使用动态数组
zhuwanglove
2008-11-06
打赏
举报
回复
在内存中的位置不同.栈与堆的区别
beck_zhou
2008-11-06
打赏
举报
回复
[Quote=引用 3 楼 devil_zuiai 的回复:]
char name[32] = "回帖也是善举" ; //在栈取分配,程序自动释放。
char *name = new char[32] //在堆区释放,delelte释放。不释放可能造成内存泄露。
动态申请可以自己定大小。
静态只能编写时固定大小。
[/Quote]
wryse
2008-11-06
打赏
举报
回复
静态申请得到的对象过了当前作用域就被释放掉了,动态new出来的则不会,需要手动释放掉,可以用来向作用域外传递数据……
另外,记得两者申请出来的内存一个是在堆中一个是在栈中的……
呃,俺基础不牢,还需高手确认说法……
dream19861009
2008-11-06
打赏
举报
回复
区别:申请的内存在不同的位置,静态申请的数组内容 如上面的"回帖也是善举" 则将被放到静态存储区域中,但 new char[32] 申请的内存是在堆上的
利弊:静态是事先分配好的,变量无效时,对应内存会自动释放,动态是临时分配的,但不用时需要释放内存,否则会造成内存泄露
devil_zuiai
2008-11-06
打赏
举报
回复
char name[32] = "回帖也是善举" ; //在栈取分配,程序自动释放。
char *name = new char[32] //在堆区释放,delelte释放。不释放可能造成内存泄露。
动态申请可以自己定大小。
静态只能编写时固定大小。
hhyttppd
2008-11-06
打赏
举报
回复
区别在于堆栈和自由存储区。
cyj626
2008-11-06
打赏
举报
回复
自己做菜和吃别人做的菜
哪个好吃?
静态
内存
分配与
动态
内存
分配
本文围绕
静态
内存
分配与
动态
内存
分配展开。介绍了
内存
模型,指出只读段、读写段和共享库在编译或链接时固定,堆需程序员释放,栈由编译器管理。对比了两者在时间和空间上的
区别
,还说明了
动态
分配的数据类型,最后总结有自己
申请
的
内存
需自己释放。
静态
链表和
动态
链表的
区别
本文详细介绍了
静态
链表和
动态
链表的概念及其
区别
,包括它们的存储方式、节点连接方式以及创建过程。通过具体实例,展示了如何使用C语言实现这两种链表,并对比了它们在实际应用中的优缺点。
C++之
动态
空间
申请
本文介绍了C++中
动态
空间
申请
的方法。
动态
空间
申请
能在程序运行时按需分配
内存
,更灵活应对需求变化。文中对比了C语言的malloc写法与C++的new,阐述了二者在
申请
不同类型空间时的
区别
,还强调了避免
内存
泄漏,可使用智能指针管理
动态
内存
。
C语言中指针
动态
内存
的
申请
和释放
本文深入探讨了
动态
内存
管理的核心概念,包括C和C++中
动态
内存
的
申请
与释放,详细解析了malloc/free与new/delete的
区别
及应用场景,阐述了
动态
内存
分配的注意事项,以及如何避免
内存
泄漏和野指针等问题。
静态
数组和
动态
数组的
区别
本文探讨了
静态
数组和
动态
数组在
内存
分布、大小确定、生命周期及C/C++
内存
分配方法的
区别
,包括栈区的
静态
数组效率高但大小不可变,堆区的
动态
数组灵活但释放需程序员操作。还提到了如何通过函数返回
动态
数组的方法和注意事项。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章