[其他ST产品] 测量不确定长度的数组长度

[复制链接]
595|10
Treasure101 发表于 2025-9-14 02:37 | 显示全部楼层 |阅读模式
如何测量不确定长度的“uint8_t”的数组的长度?使用了sizeof(),但测量不正确。



7559068c58236a3bdc.png
7499568c58240be5de.png
xiaoqizi 发表于 2025-10-14 11:11 | 显示全部楼层
sizeof 运算符通过计算数组总字节数除以单个元素的字节数得到长度
木木guainv 发表于 2025-10-14 15:36 | 显示全部楼层
[color=rgba(0, 0, 0, 0.85)]sizeof仅适用于静态分配的数组,若数组作为参数传递给函数则会退化为指针,导致此方法失效
Jiangxiaopi 发表于 2025-10-14 19:53 | 显示全部楼层
如果数组末尾显式添加了特定终止符,可通过循环检测该标记来计算有效数据长度
荣陶陶 发表于 2025-10-15 09:22 | 显示全部楼层
用户可定义特殊标记作为逻辑结尾,并通过函数遍历数组直至遇到该标记
Zuocidian 发表于 2025-10-15 13:39 | 显示全部楼层
”自定义函数 + 约定终止条件“支持动态判断,但需确保数据中不存在误判的终止符,且需要预先知道最大可能长度以避免越界访问
Zhiniaocun 发表于 2025-10-15 17:57 | 显示全部楼层
利用模板推导数组维度:仅适用于编译期已知大小的数组
Puchou 发表于 2025-10-15 21:57 | 显示全部楼层
对于动态生成的数据缓冲区,建议将实际有效长度存储在独立变量中同步更新
Xiashiqi 发表于 2025-10-16 09:59 | 显示全部楼层
试图在函数内部用 [size=0.875]sizeof(ptr) 获取传入数组的长度 → 此时 [size=0.875]ptr 是指针类型,结果仅为指针大小
小海师 发表于 2025-10-16 14:06 | 显示全部楼层
默认用 [size=0.875]'\0' 作为终止符却未验证数据合法性 ,若原始数据恰好包含 [size=0.875]0x00,会导致提前终止计数
Haizangwang 发表于 2025-10-16 18:36 | 显示全部楼层
优先使用 [size=0.875]sizeof 处理静态数组;动态场景下采用显式长度变量或约定终止符+边界检查组合
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

62

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部