社区
C++ 语言
帖子详情
动态申请内存和静态申请内存的根本区别在哪里了?
chenxidu
2008-11-06 04:06:30
在一个函数的内部:
char name[32] = "回帖也是善举" ; //--静态数组
char *name = new char[32] //--动态申请内存
memset(name ,0,sizeof(name));
strcpy(name ,"回帖也是善举");
想问一下,这两种申请内存的根本区别在哪里了?他们二者的利弊各是什么了?
...全文
1137
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语言-面试题汇总-2023
一个C语言程序从何处开始执行? 答案:一个C语言程序从main()函数开始执行。 C语言的全局变量和
静态
变量有何
区别
? 答案:全局变量在整个程序中都有效,而
静态
变量只在声明它的文件有效。 如何在C语言中
申请
动态
内存
? 答案:可以使用malloc()函数或calloc()函数
申请
动态
内存
。
动态
内存
与
静态
内存
的
区别
概念: 1.
静态
内存
:程序编译开始阶段,由编译器分配给该程序的
内存
, 2.
动态
内存
:编程者不知道该
申请
多大,手动
申请
的
内存
。
区别
: 1.分配时间:
静态
内存
在编译开始阶段分配,
动态
内存
在程序运行时分配,因而
静态
内存
不占用CPU资源,而
动态
内存
占用。 2.分配位置:
静态
内存
分配在栈区,
动态
内存
分配在堆区。 3.分配方式:
静态
内存
由编译器自动分配,
动态
内存
由编程者手动分配。 4.分配大小...
动态
内存
分配和
静态
内存
分配相关辨析
动态
内存
分配和
静态
内存
分配 1.什么是
静态
内存
分配和
动态
内存
分配 主要体现在时间和空间的不同。
静态
内存
分配是在程序执行之前,由编译器在程序编译阶段实现的,
动态
内存
分配是在程序执行时由程序完成。。
静态
内存
分配是在栈中的
内存
分配,
动态
内存
分配是在堆中的
内存
分配。
内存
分配主要根据不同的需求来进行,我们把
内存
分为三个部分,栈 堆
静态
区,栈主要完成函数参数以及局部变量的空间分配,堆主要完成
动态
内存
分配,
静态
区主要是全局变量以及惊天变量的存储。 2.两种
内存
分配的主要
区别
及意义 对于
静态
内存
分配,是在
内存
中开辟一块
手把手入门C语言—
动态
内存
和
静态
内存
总结
手把手入门C语言—
动态
内存
和
静态
内存
总结特点知识拓展
动态
内存
和
静态
内存
堆和栈的
区别
:1.
申请
方式2.
申请
后系统的响应3.
申请
大小的限制4.
申请
效率的比较:5.堆和栈中的存储内容6.
内存
的回收代码回顾之前的文章
静态
内存
分配链接
动态
内存
分配链接 特点 特点:
申请
完之后,只要不回收就会一直在
内存
中存在子函数的值,可以被主函数长时间的保留。 知识拓展
动态
内存
和
静态
内存
静态
内存
是程序编译执行后系统自...
动态
内存
与
静态
内存
有何优劣?嵌入式如何选择?
在实时嵌入式系统中,由于系统软件并不像PC上复杂,一般都是很简单的
内存
使用,所以一般也不使用
动态
内存
管理,但是随着RTOS面临的任务越来越重,尤其是IoT和AIoT的到来,让许多消费级产品运行的RTOS的负担越来越重。2. 创建的空间不同:堆都是
动态
分配的,没有
静态
分配的堆。2.
静态
内存
由于是编译阶段分配好的,而
动态
内存
是由运行中分配,这样
动态
内存
可以被高效复用,当某段程序使用完毕后,可以将
内存
交换给
内存
池中等待下次程序的分配,由于这种机制,开发者可以利用更小的
内存
开发更大型的程序。
C++ 语言
64,646
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章