<分区>
我使用 SIMD
对数组进行了一些操作,因此我需要让它们在内存中对齐。当我将数组放在 stack
上时,我只需这样做就可以了:
#define BUFFER_SIZE 10000
alignas(16) float approxFreqMuls_Float[BUFFER_SIZE];
alignas(16) double approxFreqMuls_Double[BUFFER_SIZE];
但是现在我需要分配更多的内存(比如96k double
,或者更多):所以我认为heap
是方式;但是当我这样做时:
int numSteps = 96000;
alignas(16) float *approxFreqMuls_Float = new float[numSteps];
alignas(16) double *approxFreqMuls_Double = new double[numSteps];
它在 ostream
上抛出错误。不太确定该消息(我在 MSVC
上,没有任何东西)。
如何在堆
上分配对齐数组?