我正在尝试在我的代码中使用以下内容:
int val;
val = sscanf ( line_pointer, "%u,%u %s %s", &unit_id, &subprogram_id, flags.get(), slotDescriptionPtr.get() );
但是通过 PC-Lint 收到此警告
warning 498: unbounded scanf conversion specifier '[' may result in buffer overflow
sscanf( value + 7, "%[^/]/%[^/]/%[^\n]", low, high, delta );
如何修复警告
使用 width 表示每个字符串对话。
// sscanf( value + 7, "%[^/]/%[^/]/%[^\n]", low, high, delta );**
char low[100];
char high[100];
char delta[100];
sscanf( value + 7, "%99[^/]/%99[^/]/%99[^\n]", low, high, delta );**
检查
sscanf()
的返回值。