65,182
社区成员




//测试
class A {
public:
A() { };
~A() {};
};
int main()
{
auto a = malloc(4 * sizeof(A));
auto b = new (a) A[4];
cout << (int)a << endl;
cout << (int)b << endl;
cout << *(((int*)b)-1) << endl;
system("pause");
return 0;
}
输出如下:
15764912
15764916
4
所以你应该多分配四个字节,OVER
具体可以看我的博客【C++】 深入探究 new 和 delete