4
A
回答
1
分析仪正确。如果_numberOfColumns
为0,您的代码将访问垃圾内存,因此为heights
分配0字节,使heights[0]
垃圾。分析仪不知道_numberOfColumns
可以具有哪些值,但可以使用assert(_numberOfColumns>0)
来告诉它。
借此C程序例如:
int main(int argc, const char * argv[])
{
int n = argc-1;
int *a = malloc(n*sizeof(int));
for (int i=0; i<n; i++) {
a[i] = i;
}
int foo = a[0];
free(a);
return foo;
}
的a
大小由参数的数量来确定。如果你没有参数n == 0
。如果你确定你的程序(或者你的程序的那一部分)总是将大于0的值分配给a
,你可以使用一个断言。添加assert(n>0)
会告诉分析仪确切的。
2
我认为静态分析器没有看到如何_numberOfColumns
可以变成非零,因此它坚持垃圾分配。你需要检查你是否实际上提供了一些手段来使_numberOfColumns
变成非零。
通常当我写要找到最大或最小值循环,我初始化大小变量最大的(如果我想最小)或最小(如果我想最大的)量,我认为这将解决你的大部分问题:
float shortestHeight = FLT_MAX;
for (unsigned i = 0; i < _numberOfColumns; i++)
{
// etc.
}
相关问题
- 1. 问:9.由于某种原因未定义垃圾邮件
- 2. 垃圾值
- 3. 垃圾价值
- 4. 未定义/未指定/实现定义的行为警告?
- 5. 字符指针返回值垃圾
- 6. 为一个自定义帖子类型禁用WordPress垃圾箱
- 7. 垃圾收集器如何确定对象是否是垃圾?
- 8. 获得垃圾值
- 9. malloc的垃圾值
- 10. 保持垃圾值
- 11. 未定义指数
- 12. 未定义指数
- 13. 未定义指数
- 14. 未定义指数
- 15. 未定义指数
- 16. 未定义指数
- 17. 基于指定值或未指定的条件筛选
- 18. 指令中的值未定义
- 19. 为垃圾评论
- 20. 在角度自定义指令中未定义的值
- 21. 如何在Matplotlib中手动指定垃圾箱?
- 22. python OOP if语句需要垃圾邮件和变量未定义
- 23. 为什么printf不打印垃圾值?
- 24. 未定义值或构造函数'DotCoverNUnit'
- 25. 垃圾收集原因:MediaPlayer未经发布而最终确定
- 26. 如何通过css将定义的值更改为未指定的值?
- 27. Lua绑定到C++和垃圾回收
- 28. C#定时器和垃圾回收
- 29. 特定情况下的垃圾回收
- 30. 2D阵列将垃圾值
'_numberOfColumns'的值是什么? – melvynkim 2013-03-14 10:08:07
_numberOfColumms = 2; – 2013-03-14 10:08:46
我怀疑你的for循环分配的数组值没有执行...可能是_numberOfColumns = 0。你能打印高度数组的内容吗? – Yogi 2013-03-14 10:10:18