我正在创建一组函数,它们接受一个指向二维数组的指针并用一些数据填充数组
这就是我现在得到它的方式:
17 void m4identity(float *m[4][4]) {
18 *m = (float[4][4]) { { 1, 0, 0, 0 },
19 { 0, 1, 0, 0 },
20 { 0, 0, 1, 0 },
21 { 0, 0, 0, 1 } };
22 }
但不幸的是,我得到一个编译器错误:
linalg.c:18:7: error: incompatible types when assigning to type ‘float *[4]’ from type ‘float (*)[4]’
问题:
(*)[4]
和 和有什么不一样*[4]
?有一个更好的方法吗?
我最初试图返回一个指向函数内部创建的数组的指针,但这引发了另一个编译器错误,因为它超出了范围。我还想避免从函数内部为数组分配空间,因为这很难控制。