如何修复警告 - 未绑定 scanf 转换

问题描述 投票:0回答:1

我正在尝试在我的代码中使用以下内容:

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 );
c scanf pc-lint
1个回答
0
投票

如何修复警告

  • 使用 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()
    的返回值。

© www.soinside.com 2019 - 2024. All rights reserved.