gpt4 book ai didi

c++ - 检查内存是否已经初始化

转载 作者:太空宇宙 更新时间:2023-11-04 15:09:50 26 4
gpt4 key购买 nike

如果我通过::operator new(nbytes) 分配了一定数量的内存,后来我通过“new(where)what”在这个池中构造了一些(但小于 nbytes)适当类型的 objs,是有没有办法检查未初始化的内存从哪里开始?

示例

struct T{};
short noOfObj = 10;
T* p = static_cast<T*>(::operator new(sizeof(T) * noOfObj));
for (short i = 0; i < (noOfObj - 2); ++i)//here I'm constructing two less obj than available mem
{
new (p + i) T();
}

我如何检查(不知道 noOfObj 减少了多少)p 指向的未初始化内存从哪里开始? (感觉我又搞砸了语法,但我担心我现在能做的最好)

最佳答案

唯一的方法是跟踪您放置newd 的对象的大小,并自己维护一个指向未使用部分的指针。系统无法向您提供该信息。

关于c++ - 检查内存是否已经初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4127600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com