我当时在考虑如何解决新的this问题,但遇到了问题。
假设我分配了一个float
数组:
float *f = new float[10];
然后,我使用此存储空间存储double
(注意,我假设f
和sizeof(float)*2==sizeof(double)
正确对齐)会破坏float数组:
double *d = new(f) double;
for (int i=1; i<5; i++) {
new(d+i) double;
}
现在,有没有一种方法可以重新创建float数组?最直观的解决方案
f = new(f) float[10];
可能不起作用,因为new[]
可能会有空间开销,因此float[10]
可能不适合f
。