发布网友 发布时间:2023-04-30 21:37
共2个回答
热心网友 时间:2023-10-09 23:28
1. exe运行的时候,系统会创建一个进程,同时会分配一块独立的内存空间给该进程,这个内存空间在32位系统上是从0x00000000到0xFFFFFFFF, 4G的空间大小。2. CPU时间分配的单位是线程,所有的函数都是在一个线程里面执行的,当线程创建时,系统会分配一段内存和寄存器给这个线程,线程就可以调用函数了。栈内存是在进程内存空间里面。exe是一个文件的概念,只有当exe运行之后,系统创建的exe的进程实例之后,才会分配内存,所有栈内存是在exe的进程实例中的,在exe之内的说法不妥。3.自由存储区和堆不是一个概念。一般而言,自由存储区是指CRT(C运行时库)通过malloc,free函数管理的内存。堆特指通过new,delete管理的内存。但是在部分编译器的实现上这两块内存都是同一种管理方式。4. int* p = new int 如上述,在exe的进程空间栈内存空间里面。5 栈产生的时机如2所讲,是在一个线程创建的时候。 在C++程序中内存是分为5块的,注意区分1.栈2.堆3.自由存储区4.全局/静态存储区5.文字常量存储区热心网友 时间:2023-10-09 23:28
是连续的,2.不是3,,不是一个概念呢 3,,不是,是新开辟一块内存区域 5,是调用函数的时候