Cppcheck检测到类似于这样的代码可能存在潜在问题:
float a, b, c;
int count = sscanf(data, "%f,%f,%f", &a, &b, &c);
这里说的是:"scanf没有字段宽度限制可能会在处理大量数据时导致崩溃"。这是怎么可能的呢?这是某些sscanf实现中已知的错误吗?我理解数字可能会出现溢出,但程序怎么会崩溃呢?这是cppcheck中的误报吗?
我找到了一个类似的问题:scanf Cppcheck warning,但答案并不能完全令人满意。答案提到了类型安全性,但这在这里不应该是问题。
sscanf_s
不具备可移植性,且与其名称和微软所声称的安全性实际上并不一致。 - Konrad Rudolph