c-C/C++内存分几部分啊?堆、栈、静态存储区,还有别的没?

问题描述

C/C++内存分几部分啊?堆、栈、静态存储区,还有别的没?

C/C++ 的内存分几部分啊?堆、栈、静态存储区,还有别的没?每部分的具体作用是什么?

解决方案

首先分为两部分 寄存器和内存(包括缓存)

内存分为两部分 代码和数据

数据分为两部分 静态存储区和运行时存储

运行时存储分为 堆栈 和 堆
静态存储分为 全局静态存储 和 常量

解决方案二:

我自己画了个图,可以参考下。

解决方案三:

静态存储分为 全局静态存储 还有文字常量区吧,

解决方案四:

http://www.cnblogs.com/yxnchinahlj/archive/2011/02/09/1950328.html

解决方案五:

http://www.cnblogs.com/hanyonglu/archive/2011/04/12/2014212.html

解决方案六:

C/C++ 堆、栈、自由存储区、全局/静态存储区和常量存储区

时间: 2024-10-24 18:03:43

c-C/C++内存分几部分啊?堆、栈、静态存储区,还有别的没?的相关文章

c#-C# 内存分几部分啊?堆、栈、静态存储区,还有别的没?

问题描述 C# 内存分几部分啊?堆.栈.静态存储区,还有别的没? 关于内存分类,有一篇关于C++的,讲得很详细,但哪位大神给介绍一下C#的呢,也是五部分吗? 解决方案 首先分为两部分 寄存器和内存(包括缓存) 内存分为两部分 代码和数据 数据分为两部分 静态存储区和运行时存储 运行时存储分为 堆栈 和 堆 静态存储分为 全局静态存储 和 常量 解决方案二: 静态存储区.堆和栈的区别静态存储区.堆和栈的区别静态存储区.堆和栈的区别 解决方案三: 代码区,堆,栈,静态区. 解决方案四: http:/

Java虚拟机:JVM内存分代策略

Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 为什么要分代? 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中.给堆内存分代是为了提高对象内存分配和垃圾回收的效率.试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象所花费

java内存管理(堆、栈、方法区)

java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉到的内存问题,并且在内存问题出现的时候,也不能很快的定位并解决.因此,了解并掌握Java的内存管理是我们必须要做的是事,也只有这样才能写出更好的程序,更好地优化程序的性能. 概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁

请问C#内存分布情况,例如堆栈 全局静态区 代码区?最好有实例?多谢多谢

问题描述 请问C#内存分布情况,例如堆栈全局静态区代码区?最好有实例?多谢多谢 解决方案 解决方案二:我也想知道这个,帮忙顶一下,,看金旭亮老师的.net2.0面向对象编程揭秘上有说,,但是还不明白解决方案三:这些东西都是有CLR来管理的,作为初学者我觉得不需要把精力和时间放在这里(实际上你就算知道了,CLR也没有太多地方供你操作这些东西),如果你真对这些感兴趣,学C++.解决方案四:我也想学习哈关于内存和缓存,但是一直都没有什么学习的头绪,希望有经验交流哈啊....顶了....解决方案五:还有

像高手求助C#内存分布情况,例如堆栈 全局静态区 代码区?最好有实例讲解?高手请进

问题描述 像高手求助C#内存分布情况,例如堆栈全局静态区代码区?最好有实例讲解?高手请进多谢多谢 解决方案 解决方案二:up解决方案三:几乎不可能谁要能知道一个程序编译后在内存中是啥样那得是编译器高手了.

堆和栈的问题-内存中的"堆"和"栈"的知识

问题描述 内存中的"堆"和"栈"的知识 Public static void changeStr(String str){ str="welcome"; } Public static void main(String[] args) { String str="1234"; changeStr(str); System.out.println(str); } 以这个体为例谁能给我解释一下关于 "堆",&q

内存机制-关于动态存储与静态存储的区别

问题描述 关于动态存储与静态存储的区别 什么时候要用到动态存储呢?它在用的时候还要指定大小,和静态分配区别在哪呢? 解决方案 运行的时候若由用户指定了一个大小n,程序接下来就可以这样分配int *arr = (int *) malloc ( sizeof(int) * n ); 解决方案二: 编译的时候无法确定大小的,只能用动态存储.另外,程序中可能使用,也可能不使用的存储,用动态存储可以提高性能. 解决方案三: 我是说编译时无法确定大小.而不是说无法确定大小.malloc中指定变量,而变量来自

c语言 内存问题-c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问

问题描述 c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问 1C 这是程序 这是输入的数据,3个人名 这是出现的异常,不懂是为什么啊?有人给说说吗 解决方案 看着像是访问变量出问题了,你怎么不放代码放截图怎么看的清.最好放代码别人好调试 解决方案二: 楼主这种要存好几个字符串的,要么用二维数组,要么用指针数组 #include<iostream>using namespace std;void main() { int i; char *name[4]; //创建指针数组,含有

挑战:如何将内存中大量的对象信息数据实时存储到外部?

问题描述 各位大侠,我在开发中遇到一个棘手的问题:程序运行过程中,需要隔一段时间(通常几秒钟)就要把程序中的某些对象当时的属性值存储到外部(数据库?文件?还没想好),数据量还特别大,类似于一种详细的"日志记录",用于像下棋中的"悔棋"一样,可以将程序恢复到以前的某个时间点上,并且期望不要太影响主程序的运行速度.各位高手有没有比较好的意见或者指导?这里我先谢啦! 解决方案 解决方案二:也有点类似于word中的"撤销"操作,但是数据量可能很大.解决方