有这样的代码:
#include <iostream>
int main()
{
int a;
int* p = new (&a) int(2);
std::cout << a << std::endl;
// delete p; error BLOCK TYPE IS INVALID
std::cin.get();
return 0;
}
输出结果如下:
2
为什么可以在堆栈上动态分配内存?(我认为堆是正确的地方)。此外,为什么在这种情况下delete运算符会返回错误,但new运算符却可以工作?
a
的内存来放置 p。 - Tony The Lion