下面的代码对我有用。这怎么能行?这不会是段错误吗?
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
}