1

C99では、次のようなものを持つことができます

struct foo
{
    int a;
    int data[];
}; 

そしてfoo* f=(foo*)malloc(sizeof(foo)+n)、配列の長さが である構造体を持つように割り当てnます。

クラスが仮想関数を持つサブクラスである場合、C++ で同様のことができますか?

foobar のサブクラスのように、次のようにしますstd::unique_ptr<bar> f= std::unique_ptr<foo>((foo*)malloc(sizeof(foo)+n))

メモリの解放が行われるため、そのコードが機能しないことはわかっていますがdelete、割り当てはで行われましたmalloc

4

2 に答える 2