在C/C++中將兩個二維陣列初始化為零 - 程式人生
文章推薦指數: 80 %
我的問題是我們可以使用 int a[10][10] = {{0}} 初始化二維陣列嗎? 根據initialize-large-two-dimensional-array-in-c中的最高答案, int array [ROW][COLUMN] = {0};
程式人生>c++>在C/C++中將兩個二維陣列初始化為零
【c++】在C/C++中將兩個二維陣列初始化為零
阿新••發佈:2021-01-27
我的問題是我們可以使用inta[10][10]={{0}}初始化二維陣列嗎?根據initialize-large-two-dimensional-array-in-c中的最高答案, intarray[ROW][COLUMN]={0}; 這意味著:“將第一行中的第一列初始化為0,並將所有其他專案初始化為靜態儲存持續時間,即將它們設定為零。
”但是,在檢查C99Standard9899:TC3和C++11StandardN4296時,我沒有發現任何官方記錄支援此答案中提到的內容。
此外,當我嘗試使用以下解決方案解決LeetCode474.OnesandZeroes問題時,確實遇到了此問題。
//Tomakequestionclear:
//Itseemsthat"intdp[m+1][n+1]={{0}}"cannotinitilizeallelemto0
//"memset(dp,0,sizeofdp)"isnecessarytopasstheOJtest.Anyidea?
classSolution{
public:
//m:0s,n:1s
intfindMaxForm(vector
有關C的其他問題和文件無關。
C和C++是不同的語言。
在StandardC++中,必須在編譯時知道陣列尺寸。
intdp[m+1][n+1]是一個錯誤(更不用說嘗試對其進行初始化了)。
可能您正在使用提供C++VLA作為非標準擴充套件的編譯器。
在那種情況下,對於程式碼的行為以及={{0}}在程式碼上的行為,您將受制於特定的編譯器。
C++標準將無濟於事。
我的建議是避免使用非標準的構造,以便保留標準檔案提供的保證。
如何將std::vector
延伸文章資訊
- 1二維陣列的宣告與使用
(1) int a[50][3]; // 宣告整數二維陣列a,其內容可以看成是一個棋盤表格,共有50列(橫排),每列3個元素; 例如要儲存50位同學的三科成績,就可以這樣宣告。
- 2字元陣列
本例的二維字元陣列由於在初始化時全部元素都賦以初值,因此一維下標的長度可以不加以說明。 bullet_19.gif 字串和字串結束標誌. 在C語言中沒有專門的字串變數,通常 ...
- 36-3 二維陣列
i 上C 語言. 6-12. 6-3 二維陣列. 二維陣列(two dimension array)表示法與一維陣列類似,是由兩個中括 ... 這也給我們一個警示,要將陣列的元素初始化。 二維陣...
- 4如何在C++ 中使用new 宣告2D 陣列| D棧 - Delft Stack
本文介紹了用 new 動態宣告二維陣列的多種C++ 方法。 ... 在這個例子中,我們初始化一個4x6 的 vector_2d 陣列,每個元素的值為 0 。
- 5第5章、陣列和指標 - C/C++
舉例來說,一個10(row) * 2(column)的二維陣列mat,指定其初始值第一縱行從數字1 ... 如果在陣列初始化宣告時並沒有指定陣列的大小,C/C++在編譯時將會自動配置一個適 ...