![]() |
1
4
POD仅在使用时显式初始化值
|
![]() |
2
3
这个数组不应该初始化为零:我认为您应该检查特定实现的文档(可能是调试选项?). |
![]() |
3
2
你能用吗
编辑:这也消除了对长度变量的需要。 EDIT2:假设您当前的代码工作正常,您是否通过分析确认了初始化实际上是代码中的一个瓶颈?这可能完全是一个过早的优化。 |
![]() |
4
1
在编辑中回答您的问题“是否有人知道是什么导致内存看起来为零?” 您正在分配大量内存,因此operator new正在从操作系统请求新的虚拟内存块。作为一项安全功能,所有当前操作系统都确保在进程读取虚拟分配的内存之前将其清除。这是为了确保进程隔离,以便您无法读取以前写入到另一个进程并由另一个进程释放的内存。 避免在第一次访问时将内存归零是不可能的,但是可以使用自定义内存分配器来重用从操作系统请求的虚拟内存池。这将允许随后的请求避免清除。保留虚拟内存与运算符delete的默认行为相反,后者是将虚拟内存返回到操作系统进行大量分配。在执行虚拟分配和释放时,也可以调整默认分配器的阈值,但这取决于系统。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |