You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:35:19