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

ほとんどの場合、含まれていませんでした<new>。これは、placement-new の標準形式の宣言に必要です。

于 2013-11-07T08:45:18.350 に答える