小编Ste*_*eng的帖子

堆栈内存与堆内存

可能重复:
堆栈和堆的内容和位置

我用C++编程,我总是想知道堆栈内存与堆内存到底是什么.我所知道的就是当我调用new时,我会从堆中获取内存.如果创建局部变量,我会从堆栈中获取内存.经过对互联网的一些研究,最常见的答案是堆栈内存是临时的,堆内存是永久性的.

堆栈和堆内存模型是操作系统或计算机体系结构的概念吗?那么它的一些可能不会遵循堆栈和堆内存模型或所有它们都遵循它?

堆栈和堆内存是虚拟内存的内存模型的抽象(可能在磁盘和RAM之间交换内存).堆栈和堆内存在物理上可能是RAM还是磁盘?那么堆分配似乎比堆栈对应慢的原因是什么?

此外,主程序将在堆栈或堆中运行?

此外,如果进程耗尽堆栈内存或堆内存分配,会发生什么?

谢谢

c++ memory

89
推荐指数
3
解决办法
12万
查看次数

将工作表和单元格设置为变量

我是VBA编码的新手.假设我正在从Sheet3.Cell(23,4)中检索值的值,在VBA代码中是否有任何方法可以将其设置为变量?

例如,我已经更改了接口并让值保持在Sheet4.Cell(20,1),我的代码中的任何地方都引用Sheet3.Cell(23,4)需要更改为Sheet4.Cell(20,1) ).我在想是否有针对这种情况编码VBA的最佳做法?

excel vba excel-vba

5
推荐指数
2
解决办法
15万
查看次数

VBA for Excel中的Str函数为字符串添加了一个字符

我正在使用str()函数将整数转换为字符串

但是,我注意到str()函数会为字符串返回一个额外的字符.

例如,MsgBox(Len(str(1)))将返回2.

附加的额外字符是什么?

string vba integer casting excel-vba

4
推荐指数
2
解决办法
4025
查看次数

内存处理C++使用普通指针

我有一个像下面的情况,我有一些解决内存的问题.基本上我有一个向量来保存指向classA中对象的指针.我有另一个classB,它存储来自vector的classA的指针.它会利用objB.问题是我需要对向量进行操作以擦除指针.

那么我怎么能释放objA的记忆,如下面的描述?

  1. 通过值传递objA并在objB中复制?

  2. 在objB的析构函数中删除指向objA的指针?(我也不想这样做,因为只有当逻辑完成时,我才需要擦除指针并删除对象.否则,我想保留对象.

    vectorA <classA*> vt; ....将多个指针存储到矢量对象

    classB*objB = new classB(vt.at(pos));

    执行了一些逻辑.如果满足,则需要从向量中删除特定对象.

    vt.erase(POS); ==>如果我在这里删除指针,如何释放内存?我无法在此处调用delete,因为objB可能需要稍后使用objA.

    classB :: classB(classA*objA){this-> objA = objA; }

那么有没有办法使用Normal指针释放内存,如上所述?由于一些回复指示我使用智能指针,我的问题是使用智能指针是否会对性能造成任何惩罚?(就像C#indeterministic垃圾收集器并不是性能关键应用程序的理想选择).

c++

2
推荐指数
1
解决办法
209
查看次数

Excel VBA - 检测无效引用的函数

我是excel vba的新手.是否有任何功能可以检测单元格值#REF!

excel vba keyboard-shortcuts excel-vba

2
推荐指数
1
解决办法
5295
查看次数

在C++中存储和检索多个键

我有一些检索值所需的整数键.基于密钥存储和检索值的最有效方法是什么?

目前,我正在将三个键转换并组合成一个字符串,并将键值对存储在一个映射中.但是,我认为应该有一种更有效的方法,仅基于整数值,例如基于三个键生成单个键.有什么想法吗?

谢谢.

c++ stl

1
推荐指数
1
解决办法
854
查看次数

标签 统计

c++ ×3

excel-vba ×3

vba ×3

excel ×2

casting ×1

integer ×1

keyboard-shortcuts ×1

memory ×1

stl ×1

string ×1