我遇到了指向二维数组的指针问题。指针应指向一个可变大小的数组。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);
等,但他们都不工作。
任何帮助表示赞赏:) 谢谢!
编辑:好的问题理解和解决,非常感谢!
二维数组不会转换为双指针。 –