已关闭
[Documentation|文档反馈]: 测试输入示例存在硬编码风险,易导致数组越界 #479
泠月创建于  5月30日关闭于  5月30日
泠月
泠月
5月30日 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Document Link(文档链接)

https://gitcode.com/cann/ops-cv/blob/master/docs/QUICKSTART.md

Issues Section(问题文档片段)

std::vector<int64_t> selfXShape = {8, 8, 8, 8};
std::vector<float> selfXHostData(4096); // 4096 = 8 * 8 * 8 *8
for (int i = 0; i < 4096; ++i) {
    selfXHostData[i] = static_cast<float>(i % 10);
}

Existing Issues(存在的问题)

在 QUICKSTART.md的 “四、算子验证 > 1. 修改测试输入” 章节中,示例代码使用硬编码数值 4096定义输入数据数组大小,而非基于输入张量形状动态计算。若用户修改 selfXShape的形状(如从 {8,8,8,8}改为 {16,16,16,16}),selfXHostData的大小未同步调整,将直接导致 数组越界 或 数据不完整,引发运行时错误。示例代码应具备鲁棒性,能够基于用户输入的张量形状自动计算所需内存大小,避免硬编码。

建议将硬编码的 4096替换为基于 selfXShape的动态计算逻辑:

std::vector<int64_t> selfXShape = {8, 8, 8, 8};
size_t totalElements = 1;
for (auto dim : selfXShape) {
    totalElements *= dim; // 动态计算总元素数
}
std::vector<float> selfXHostData(totalElements);

for (size_t i = 0; i < totalElements; ++i) {
    selfXHostData[i] = static_cast<float>(i % 10);
}
likedislike
liu-weiliu-wei成员
5月30日 将 liu-wei 设为负责人
liu-wei
liu-wei成员
5月30日 评论:

您好,感谢建议,这里修改下吧,硬编码看起来不太友好。

likedislike
CANN-robotCANN-robot成员
5月30日 关闭了 issue
CANN-robotCANN-robot成员
5月30日 添加了label:resolved