尝试初始化两个固定大小的多维数据集时出现堆栈溢出

时间:2016-03-17 12:41:03

标签: armadillo

#include <armadillo>

int main()
{
    arma::cube::fixed<28, 28, 100> a;
    arma::cube::fixed<28, 28, 100> b;
}

此代码给出了以下错误

  

mnist.exe中0x000000013F6034A7处的未处理异常:0xC00000FD:堆栈溢出(参数:0x0000000000000001,0x0000000000133000)。

任何想法为什么?因为我一无所知。

1 个答案:

答案 0 :(得分:0)

仅建议使用fixed size matrices或多维数据集,因为堆栈大小有限。在您的情况下,28 * 28 * 100 * 8 = 627200,或约612 Kb。 (最后8位是双精度浮点数占用的字节数)。由于内部矩阵和立方体保持,也存在一些开销。

不使用固定大小的多维数据集,最好使用标准多维数据集:

arma::cube a(28,28,100);