2015-01-04 60 views
0

簡而言之,我嘗試初始化一個矩陣如下:犰狳矩陣尺寸初始化錯誤

struct MyClass { 
    arma::mat _mymat; 
}; 

MyClass::MyClass() : 
_mymat(0,0) 
{ 
} 

但在VS2010調試器,屬性

{n_rows=0 n_cols=14829735428352901220 n_elem=7925840 ... } 

後來我嘗試重新設定尺寸以3x3的,但隨後的屬性更改爲

{n_rows=3435973836 n_cols=3435973836 n_elem=3435973836 ... } 

,當我使用MyClass._mymat在multiplicatio n程序在運行時拋出異常,抱怨矩陣尺寸不相等。

該平臺是VS2010,64位帶犰狳4.200

我還與犰狳的達到同樣的效果以前版本中嘗試這樣做。

在Win32 32位下不會發生此錯誤。

回答

0

我找到了答案。

TL; DR:ARMA_64BIT_WORD沒有爲我使用的源文件定義,但是它是爲其他目標文件定義的,因此在Armadillo庫中創建了32位和64位字長度的不穩定混合。

簡單的修復方法是在項目的配置屬性中將ARMA_64BIT_WORD添加爲預處理器宏。