|
1
11
期间
|
|
|
2
1
这是一个堆栈分配,意味着在堆栈上为整数保留一个位置—它的分配方式与“在堆上找到4个空闲字节并为我分配它们”不同。 |
|
|
4
0
变量是在堆栈上分配的,不是“动态内存”。是的,a将被放在堆栈上i次。 |
|
|
5
0
Dynamic memory allocation
指编译器没有为您保留内存的进程。相反,空间是由操作系统在运行时分配的。空间来自RAM的堆区域。程序员负责释放空间,而编译器不会对此做任何事情。当动态内存分配编码为
编译器没有为10个整数保留内存。相反,会向操作系统发出保留该内存的请求。执行此代码时,操作系统保留内存(如果有足够的内存可用),并返回指向内存开头的指针。 |
|
|
6
0
通常,在函数中定义变量时,内存分配是在运行时完成的,变量存储在堆栈中,堆栈表示这类变量(局部变量)的存储系统。 对。在您提供的示例中,变量a按照以下过程创建“i”次:
因此,局部变量(函数或块中的变量)的一般行为是,在其作用域(函数或块)内的声明被推入堆栈时分配,在作用域结束时(函数或块的结尾)被从堆栈中拉出来时被“释放”。 这不是动态分配,而是自动分配。只能使用 新的 堆 删除 以释放它。
有关更多信息,请参阅 C++入门+第9章。内存模型和名称空间 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |