我遇到了指向二维数组的指针的问题。指针应指向可变大小的数组。
// 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] 时,运行软件的微控制器会出现硬故障。
稍后在访问 tmpTimeSlots 的元素时需要变量 systemMatrix。
我尝试过像这样的组合
systemMatrix = *(*tmpTimeSlot);
等等,但它们似乎都不起作用。
任何帮助表示赞赏:) 谢谢!
编辑:好的问题理解并解决,非常感谢!