检查内存是否已初始化

The*_* do 0 c++ memory-management

如果我通过:: operator new(nbytes)分配了一些内存,后来我在这个池中通过"new(where)what"构建了一些相应类型的objs(但是小于nbytes),有没有办法检查未初始化的内存在哪里开始?

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();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能检查(不知道noOfObj已经减少了多少)p指向的未初始化内存开始了?(觉得我再次搞砸了语法,但我担心我现在能做的最好)

Mar*_*k B 5

唯一的办法是保持对象(S),你放置的尺寸的轨迹newd和保持一个指向未使用的部分自己.系统无法向您提供该信息.