17

由于某种原因,我似乎无法让我的新职位工作。基于这个问题,我已经正确设置了这个。

但是,我继续收到错误:

'operator new' : 函数不接受 2 个参数

这是我的代码:

char * p = new char [sizeof(Node) * 5];
Node* node = new(p) Node();

哪里Node是链表节点。我试图根据另一个堆栈溢出问题来简化它,但我仍然遇到同样的错误:

char *buf  = new char[sizeof(int)]; // pre-allocated buffer
int *p = new (buf) int;

有谁知道我为什么会遇到这个问题?

任何帮助是极大的赞赏!

PS,这有效:

Node* node = new Node();
4

1 回答 1

37

Most likely, you didn't include <new>. You need that for the declarations of the standard forms of placement-new.

于 2013-11-07T08:45:18.350 回答