社区
C++ 语言
帖子详情
static变量放在堆还是在栈上?
ikuaifenglea
2009-04-14 11:11:14
static变量放在堆还是在栈上?
...全文
3889
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
变量
和方法到底是存在内存什么区域呢? 2010-08-13 10:27:54| 分类: java学习 | 标签: |字号大中小 订阅 突然被某人问道:java中
static
变量
和方法到底是存在内存什么区域呢? 由于好久没有复习j2se(或许以前学习的不够到位)我居然也回答不上来,后来查了下相关的资料,原来: 内存总体一共分为了
Segmentation fault段错误出现原因分析及解决方法笔记
Segmentation fault段错误出现原因分析及解决方法 1、局部
变量
的大小过大,超过
栈
分配的空间导致段错误,如double a[500][500], 解决方法:大数据不要
放在
栈
区中,可以考虑静态区和
堆
区,例如:1)定义为全局
变量
、2)定义为
static
变量
、3)使用malloc动态分配 ...
C++静态
变量
是在
堆
区还是
栈
区?
C++静态
变量
是在
堆
区还是
栈
区?
堆
区(自己一
堆
一
堆
heap地
堆
建起来的),由程序员自己管理的内存空间;
栈
区(火车站,已
java里的静态成员
变量
是
放在
了
堆
内存还是
栈
内存
转自http://bbs.csdn.NET/topics/370001490
堆
区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个
堆
区(heap)被所有线程共享,
堆
中不存放基本类型和对象引用,只存放对象本身
栈
区: 1.每个线程包含一个
栈
区,
栈
中只保存基础数据类型的对象和自定义对象的引用(不是对象)
c语言中
static
用法
c语言中
static
用法 一
static
在c里面可以用来修饰
变量
,也可以用来修饰函数。 先看用来修饰
变量
的时候。
变量
在c里面可分为存在全局数据区、
栈
和
堆
里。其实我们平时所说的
堆
栈
是
栈
而不是
堆
,不要弄混。 int a ; int main() { int b ; int c* = (int *)malloc(sizeof(int)); } a是全局
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章