我需要一个指向静态二维数组的指针。怎么做?
static uint8_t l_matrix[10][20];
void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } 我收到各种错误,例如:
警告:从不兼容的指针类型分配 下标值既不是数组也不是指针 错误:无效使用弹性数组成员 问题来源于stack overflow
134
在这里,您想指向数组的第一个元素
uint8_t (*matrix_ptr)[20] = l_matrix; 使用typedef,看起来更干净
typedef uint8_t array_of_20_uint8_t[20]; array_of_20_uint8_t *matrix_ptr = l_matrix; 然后,您可以再次享受生活:)
matrix_ptr[0][1] = ...; 当心C语言中的指针/数组世界,这引起了很多混乱。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。