新しい配列演算子を削除してもdelete []演算子には触れないでください新しい配列演算子のオーバーロードはどのくらい安全ですか?私はヒープ上に割り当てられ、</p> <ul> <li>新規[]と、私は単にオーバーロードすることができる[]</li> <li>shared_ptrの(新しい[])</li> </ul> <p>を削除するように使用される構造体を使用していると仮定すると
struct alignas(256) MyStruct
{
Item i1,i2;
void * operator new[](unsigned long int size)
{
return aligned_alloc(256,size);
}
void * operator new (unsigned long int size)
{
return aligned_alloc(256,size);
}
};
これは漏れなく実行されていますか?
GCC 6.3およびC++ 0x。
なぜあなたは 'delete'と' delete [] 'を指定する必要はないと思いますか? – geza
free()を呼び出していませんか?すべての種類の_alloc_コマンドに対してfree()は十分ですか? –
「それ」とはどういう意味ですか?誰が 'free()'と呼ぶはずですか? – geza