2011-08-26 57 views
0

這可能是一個非常簡單的問題,但由於某種原因,我不明白我在這裏做錯了什麼。陣列分配問題

無論如何,我有一個函數,需要在function(size_type m, size_type n),我必須建立一個數組,這個數組由一個名爲int *value的類中的私有變量指向。我正在嘗試創建一個大小爲mxn的整數數組,但我很難更改m和n的類型。

我想:

*value = int[(int)m*(int)n];

以及使用(unsigned int)能有人幫。

編輯:SIZE_TYPE未聲明爲任何類型的規格

+2

提供更多源代碼.... tsss ...什麼是size_type ??????? – duedl0r

回答

6

您可以考慮:

value = new int[m*n]; 

,因爲你需要創建一個動態陣列。您需要在正確的時間記住delete []

您可能會發現使用std::vector更容易,因爲內存管理是爲您處理的。

+0

是啊我的壞,我沒有正確地輸入它... – wpp

0

這個怎麼樣?

typedef int size_type; //could also be this or that other type... 

void myFunction(size_type m, size_type n) 
{ 
    int array[(int) m * (int) n ]; 
    int *value = array; 
}; 

int main() 
{ 
    myFunction(2, 2); 
    return 0; 
} 

或者您需要value以外的功能嗎?你想讓函數返回value