社区
C++ 语言
帖子详情
static变量放在堆还是在栈上?
ikuaifenglea
2009-04-14 11:11:14
static变量放在堆还是在栈上?
...全文
3886
24
打赏
收藏
static变量放在堆还是在栈上?
static变量放在堆还是在栈上?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lanseshenhua
2009-07-30
打赏
举报
回复
不错!
FrostyF
2009-04-17
打赏
举报
回复
静态存储区。
堆栈都是动态存储区的东西
xing_cq
2009-04-17
打赏
举报
回复
全局变量所放的空间
itegel84
2009-04-17
打赏
举报
回复
看过
hylove9494
2009-04-17
打赏
举报
回复
static静态变量放静态数据区
猫已经找不回了
2009-04-15
打赏
举报
回复
在全局数据区。
//main.cpp
int a = 0; 全局初始化区
char *p1; 全局未初始化区
main()
{
int b; 栈
char s[] = "abc"; 栈
char *p2; 栈
char *p3 = "123456"; 123456\0在常量区,p3在栈上。
static int c =0; 全局(静态)初始化区
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
分配得来得10和20字节的区域就在堆区。
strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。
}
danxuezx
2009-04-15
打赏
举报
回复
[Quote=引用 4 楼 brookmill 的回复:]
http://blog.csdn.net/sergeycao/archive/2009/01/16/3793671.aspx
[/Quote]
资料不错
wxgiter
2009-04-15
打赏
举报
回复
学习了。。
nde123456
2009-04-15
打赏
举报
回复
静态变量跟全局变量一样,存放在全局数据段,程序载入时分配空间,位置固定不再变化
堆和栈的空间是动态变化的
beyond071
2009-04-15
打赏
举报
回复
学习了
ztenv
版主
2009-04-15
打赏
举报
回复
看C++Primer上讲,静态数据和全局数据是放在全局数据区的;
aaaa3105563
2009-04-15
打赏
举报
回复
在静态区啊 ··
amossavez
2009-04-15
打赏
举报
回复
它存储在静态存储区。
局部变量,参数,调用现场存在栈。
new,malloc等动态开辟的存在堆。
同意!
meteor2520
2009-04-15
打赏
举报
回复
这样的问题也要问题?
楼主多看看书啊
zgjxwl
2009-04-15
打赏
举报
回复
静态数据和全局数据是放在全局数据区的
bfhtian
2009-04-15
打赏
举报
回复
[Quote=引用 1 楼 ryuk33 的回复:]
都不是.
是在 .static段上, 即静态空间上
[/Quote]
up
loud1984
2009-04-15
打赏
举报
回复
[Quote=引用楼主 ikuaifenglea 的帖子:]
static变量放在堆还是在栈上?
[/Quote]c++ 中static变量 既不放在栈区也不放在堆区,在C++里边,专门由一个静态和常量区,保存静态变量和常量,知道程序结束时释放,不能修改。
常量 如 char * p="hello";
liliangbao
2009-04-14
打赏
举报
回复
它存储在静态存储区。
局部变量,参数,调用现场存在栈。
new,malloc等动态开辟的存在堆。
wxc0077
2009-04-14
打赏
举报
回复
放在静态数据区
KevinHo
2009-04-14
打赏
举报
回复
[Quote=引用 3 楼 brookmill 的回复:]
既不是堆,也不是栈,而是一个专门存放静态变量的地方
和全局变量的保存比较类似
[/Quote]
正解
加载更多回复(4)
java中
static
变量
和方法到底是存在内存什么区域呢?
本文详细解释了Java中
static
变量
和方法分别存
放在
内存的哪些区域,包括
栈
、
堆
、数据区和代码区的区别,并通过实例进行说明。
Segmentation fault段错误出现原因分析及解决方法笔记
本文主要分析了Segmentation fault段错误出现的原因,如局部
变量
大小过大超过
栈
分配空间。同时给出了解决方法,对于大数据不要
放在
栈
区,可考虑静态区和
堆
区,如定义为全局
变量
、
static
变量
或使用malloc动态分配。
C++静态
变量
是在
堆
区还是
栈
区?
博客探讨C++静态
变量
的存储位置。指出
堆
区由程序员管理,
栈
区由编译器维护。在C++里,局部和全局静态
变量
都存于静态存储区,而非
堆
区或
栈
区,其生命周期是整个程序执行期,且静态存储区在程序启动时就已分配。
java里的静态成员
变量
是
放在
了
堆
内存还是
栈
内存
本文详细介绍了Java中的内存区域划分,包括
堆
区、
栈
区、方法区等的不同作用及存储内容。解释了各种内存区域的特点及其如何影响程序的执行效率。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章