Treasure101 发表于 2025-9-14 02:37

测量不确定长度的数组长度

如何测量不确定长度的“uint8_t”的数组的长度?使用了sizeof(),但测量不正确。



xiaoqizi 发表于 2025-10-14 11:11

sizeof 运算符通过计算数组总字节数除以单个元素的字节数得到长度

木木guainv 发表于 2025-10-14 15:36

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

试图在函数内部用 sizeof(ptr) 获取传入数组的长度 → 此时 ptr 是指针类型,结果仅为指针大小

小海师 发表于 2025-10-16 14:06

默认用 '\0' 作为终止符却未验证数据合法性 ,若原始数据恰好包含 0x00,会导致提前终止计数

Haizangwang 发表于 2025-10-16 18:36

优先使用 sizeof 处理静态数组;动态场景下采用显式长度变量或约定终止符+边界检查组合
页: [1]
查看完整版本: 测量不确定长度的数组长度