草庐IT

c++ - 放置新+数组+对齐

SomeObj*Buffer;char*BufferPtr=MemoryManager::giveMeSomeBytes(resX*resY*sizeof(SomeObj));Buffer=new(BufferPtr)SomeObj[resX*resY];当我使用调试器跳过这些行时,它会显示变量Buffer和BufferPtr的值:BufferPtr:0x0d7f004cBuffer:0x0d7f0050我真的不明白为什么这些值不同。按照我的理解,placementnew应该使用从地址“BufferPtr”开始的内存来使用分配内存上的默认构造函数初始化数组元素,并返回指向数组中第一个元

c++ - 放置新+数组+对齐

SomeObj*Buffer;char*BufferPtr=MemoryManager::giveMeSomeBytes(resX*resY*sizeof(SomeObj));Buffer=new(BufferPtr)SomeObj[resX*resY];当我使用调试器跳过这些行时,它会显示变量Buffer和BufferPtr的值:BufferPtr:0x0d7f004cBuffer:0x0d7f0050我真的不明白为什么这些值不同。按照我的理解,placementnew应该使用从地址“BufferPtr”开始的内存来使用分配内存上的默认构造函数初始化数组元素,并返回指向数组中第一个元