内存问题?

boy8765 2006-10-05 06:08:01
1.在C语言中,如果我们写一个字符串"abcdefg",那么,这外字符串应该放在文字常量区。如果我们在定义一个变量时,比如int arg=15; 请问:15这个整型数应该放在内存的何区域?如果我在程序中这样写,比如 12.36; 请问,12.36这个数据又是放在什么区域里呢?
2.在C语言中,内存中按顺序有这样几个区域:文本区、数据区、堆区、栈区。很明显,对于形如"abcde"这样的字符串应该放在数据区的。我查询了相关资料,知道这样的字符串应该放在文字常量区的。我现在猜测(因为找不到相关资料佐证),内存中的数据区还应该细分为文字常量区、初始化的全局/静态区、未初始化的全局/静态区。也就是说,内存中按顺序进行细分应该是文本区、文字常量区、初始化的全局/静态区、未初始化的全局/静态区、堆区、栈区。不知道我的这种想法是否正确?请网友们不吝指点,解决我多时的困惑,不胜感激!
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whypp 2006-10-05
  • 打赏
  • 举报
回复
顶上去!
merlinran 2006-10-05
  • 打赏
  • 举报
回复
没分这么复杂。只要是在程序运行过程中能够保证不变的,比如字面常量(就像"abcde")和定义的常量,都放在文本区。而可以在编译时分配空间的,比如non-const的全局和静态变量,都放在数据区。函数调用的开销和局部变量都在栈上分配。用malloc或者new分配的,都来自堆区。
whypp 2006-10-05
  • 打赏
  • 举报
回复
waiting
lj860603 2006-10-05
  • 打赏
  • 举报
回复
为什么发了两个同样的帖子?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧