Cppcheck 在如下代码中检测到潜在问题:
float a, b, c;
int count = sscanf(data, "%f,%f,%f", &a, &b, &c);
它说:“没有字段宽度限制的scanf可能会因大量数据而崩溃”。这怎么可能?这是某些 sscanf 实现中的已知错误吗?我知道数字可能会溢出(数字上),但程序怎么会崩溃?这是cppcheck中的误报吗?
我发现了一个类似的问题:scanf Cppcheck warning,但答案并不完全令人满意。答案提到了类型安全,但这不应该是一个问题。