C语言中unsigned char数组指针赋值报错问题求助
问题修复:数组指针赋值错误及代码修正
你的代码存在三个明显问题,逐一修复即可:
- 函数定义语法错误:
void initBuffer后缺少括号,正确写法是void initBuffer()(无参数函数)。 - 数组大小未定义:
size是未声明的标识符,需要先定义它为常量(比如用#define size 10);如果使用C99及以上标准,也可以用变量作为数组长度,但要先声明变量并赋值。 - 指针赋值类型不匹配:数组名
buffer本身就代表数组的首地址,类型是unsigned char *;而&buffer是整个数组的地址,类型是unsigned char (*)[size](指向数组的指针),两者类型不兼容,直接用ptr = buffer;即可完成赋值。
修复后的完整代码示例:
#define size 10 // 定义数组大小为10,可根据需求修改 void initBuffer() { unsigned char buffer[size]; unsigned char *ptr; ptr = buffer; // 数组名直接作为首地址赋值给指针 }
内容的提问来源于stack exchange,提问作者Ky James
相关产品推荐
相关产品推荐

