以下のコードは私にとってはうまくいきます。これはどのように機能しますか?これはセグメンテーション違反ではありませんか?
char * buffer = new char[100];
float * in_buf = new(buffer) float[100];
また、私はこのようなクラスを取得しました:
class Item
{
public:
Item(int num)
{
u = new float[num];
v = new float[num];
}
float * u;
float * v;
//And many other variables
}
メモリのブロックを作成し、その中に v と u を割り当てたいと思います。このアプローチは安全ですか?
class Item
{
public:
Item(int num)
{
buffer = new char[(sizeof(char)+2*sizeof(float))*num];
u = new (buffer) float[num];
v = new (buffer+sizeof(float)*num) float[num];
}
char * buffer;
float * u;
float * v;
//And many other variables
}