我遇到了指向二維數組的指針問題。指針應指向一個可變大小的數組。C指針指向2維數組
// create pointer to 2 dimensional array
TimeSlot **systemMatrix; // this is a global variable
在函數中我想創建一個新的數組。
void setup(uint16_t lines, uint16_t coloumns) {
// create 2 dimensional array. size can be set here.
TimeSlot tmpTimeSlots[lines][coloumns];
// make the pointer point to this array
systemMatrix = tmpTimeSlots; // WARNING
}
但是,當我讓指針指向數組編譯器說:「警告:從不兼容指針類型賦值」。另外,當從另一個函數訪問systemmatrix [2] [5]時,運行軟件的mikrocontroller會出現硬故障。
稍後訪問tmpTimeSlots的元素時需要變量systemMatrix。
我試着像組合
systemMatrix = *(*tmpTimeSlot);
等,但他們都不工作。
任何幫助表示讚賞:) 謝謝!
編輯:好的問題理解和解決,非常感謝!
二維數組不會轉換爲雙指針。 –