我該如何解決Visual Studio Visual C#C2148錯誤?這裏是產生錯誤的代碼:在visual c中是否有全局變量大小限制的解決方法?
#define ACOUNT 2000
#define BCOUNT 9000
#define CCOUNT 195
struct s_ptx {
int pvCount[ACOUNT][BCOUNT][CCOUNT];
} ;
這產生了VStudio 2010的Visual C錯誤#C2148(在64位編譯): 錯誤C2148:陣列的總尺寸不能超過0x7FFFFFFF的字節
我知道我可以動態地分配pvCount 3d數組,但是之後我必須執行一個數量爲零的免費模式。我有192個內存,所以我試圖找到一個編譯器開關或選項,允許這種大小的東西。
編輯:我離開了試圖簡化事物的複雜問題是,PTX是在運行時被用作結構數組的指針:
ptx *Ptx = (ptx *) calloc(10, sizeof(ptx));
for (int i = 0; i < 10; ++i)
{
Ptx->pv = (int (*)[BCOUNT][CCOUNT]) malloc((unsigned long) ACOUNT * BCOUNT *CCOUNT * sizeof(int));
}
for (int jav = 0; jav < 10; ++jav)
for (int j = 0; j < ACOUNT; ++j)
for (int k = 0; k < BCOUNT; ++k)
for (int m = 0; m < CCOUNT; ++m)
Ptx[jav].pv[j][k][m] = j + k + m;
所以,當我運行代碼,我得到一個訪問違反錯誤,大概是因爲通過做動態分配我不再能夠使用:Ptx [jav] .pv [j] [k] [m]
這是你到達那裏的一些設置。 :) – 2012-02-10 00:41:17