0
A
回答
0
int** matrix = malloc(sizeof(int*) * COLUMN_SIZE);
matrix[0] = malloc(sizeof(int) * COLUMN_SIZE * ROW_SIZE);
int* temp = matrix[0];
for (int i=1; i < COLUMN_SIZE; i++)
{
matrix[i] = temp;
temp += ROW_SIZE;
}
現在你要在矩陣的線性陣列[0]還可以使用要麼喜歡矩陣的線性指標尋址[0] [ INDEX]其中索引介於0和(COLUMN_SIZE * ROW_SIZE)之間,或者可以使用矩陣[COLUMN_INDEX] [ROW_INDEX]對其進行尋址。
0
當線性1D索引稱爲index
和2D索引row
和col
,在它們之間傳輸的公式是
index = row * (MAX_ELEMENTS_PER_ROW) + col;
和另一方向
row = index/MAX_ELEMENTS_PER_ROW;
col = index % MAX_ELEMENTS_PER_ROW;
的指針運算完成由+
上的指針和[]
運算符。
我給你作爲家庭作業的實際編碼;-)。
1
假設你要一個10×15矩陣(10行,15列),用於分配存儲器:
int numRows = 10;
int numColumns = 15;
int *matrix = malloc(sizeof(int) * numRows * numColumns);
要訪問的任何元件,由列數相乘所需的行,並添加列號:
//access row 3, column 5:
int value = matrix(3 * numColumns + 5);
那就是它。
相關問題
- 1. 在Visual C++中將1D指針數組(char)轉換爲2D指針數組(char)。
- 2. 轉換2D陣列到1D
- 3. 將1D數組轉換爲numpy矩陣
- 4. 如何將雙指針矩陣轉換爲C++中的單個指針向量?
- 5. 計算術語x術語矩陣
- 6. C++指針算術
- 7. C指針算術
- 8. 矩陣指針到子矩陣用C
- 9. 指針C++的2D陣列
- 10. 陣列2D到1D轉換和混淆
- 11. 類的C++矩陣(指針指針)
- 12. C語言指針
- 13. 矩陣術語
- 14. 將包含矩陣的單元格轉換爲2d矩陣
- 15. C中矩形陣列的2D旋轉
- 16. C++算術具有指針
- 17. 算術指針和fstream C++
- 18. Opencv:將RGB矩陣轉換爲1d陣列
- 19. 矩陣使用指針
- 20. 如何將3D矩陣轉換爲多個2D矩陣?
- 21. 將多類型2D矩陣轉換爲浮點矩陣?
- 22. 指針在C矩陣
- 23. 使用1d陣列打印2d陣列
- 24. 指針算術
- 25. 2D陣列和雙指針用C
- 26. 將1D矢量轉換爲2D矢量
- 27. 將2d數組轉換爲1d PHP
- 28. 將1d數組轉換爲2d
- 29. C#:1d陣列到2d陣列
- 30. 轉換指數的矩陣
聽起來像家庭作業。 – 2011-04-07 18:54:09
聞起來像功課。 – Donotalo 2011-04-07 19:00:42