我不打算改變我的動態數組的大小。我想創建一個靜態數組(包含短褲)的動態數組的原因是,我可以在一個函數中返回該數組(而不是在該函數中定義該數組的大小之前)。Dynamic Array of Static Arrays的問題
我的第一個問題是,我該如何返回這樣一個數組?函數不讓你返回沒有類型的指針&我無法找出如何定義類型爲array
的指針。
這使我想到我的第二個問題,那就是如何正確定義靜態數組的動態數組?我在網上搜索了這個,但沒有一個答案太有幫助。
這樣做的一種方法是聲明:short (*array)[size]
但這樣做的問題是我不知道如何在這種情況下初始化數組,而size
必須是文字。
我可以這樣做:
typedef short column[size];
column * row = NULL;
row = malloc(rowMax * sizeof(column));
row[0][0] = 10;
但同樣,size
必須是文字;即使size
是文字,我收到一個錯誤,指出類型「void *」的值不能分配給「column *」類型的實體。
如果您有任何人有不使用矢量的解決方案,將不勝感激;因爲矢量類比數組類大。
使用'std :: vector' –
_「,因爲矢量類比數組類大。」_你的示例中沒有_array class_。 –
如果您使用的是C++ 11或更高版本,則可以對靜態數組使用['std :: array'](http://en.cppreference.com/w/cpp/container/array)。 –