ChatGPT Studio Bug Finder 在检查 C 代码进行错误处理时是否正确

Is ChatGPT Studio Bug Finder Correct When Checking C Code For Error Handling

提问人:Johnson_Doe 提问时间:8/9/2023 最后编辑:Johnson_Doe 更新时间:8/9/2023 访问量:60

问:

鉴于以下代码片段,取自较大的 .c 文件,通过 ChatGPT Visual Studios 2022 bug finder 扩展运行;

errno_t err;
wchar_t* wcMessage;

err = wcstombs_s(&i, pFilePath, FILENAME_MAX, pszFilePath, FILENAME_MAX - 1); 
if (err != 0)
{
    // Show the user an error message
    wcMessage = L"LoadFile() wcstombs_s Error: ";        
    ShowErrorMessage(hWnd, wcMessage, err);
    return 0;
}

ChatGPT 错误查找器报告“错误 1:代码不检查 wcstombs_s 的返回值。如果返回值不是 0,则代码不处理错误”。

问题:ChatGPT 错误查找器的发现是否正确,如果是,如何正确?

我试过什么?目前,我还没有尝试任何方法来改变这一点,因为我不确定这是否是 ChatGPT 报告的误报。

我在期待什么?我原以为 ChatGPT 不会将此报告为错误。

C Windows 调试 OpenAI-API

评论

4赞 Dai 8/9/2023
“ChatGPT 错误发现器”——无论谁命名该工具,都需要受到广告真实法的抨击......
0赞 Dai 8/9/2023
通过“返回值”,它可能引用了参数,在这种情况下,它是正确的,因为您的代码当前没有取消引用或使用 .size_t* pReturnValuei
0赞 Dai 8/9/2023
(wchar_t*)"LoadFile() wcstombs_s Error: "<-- 你不应该将非宽 () 字符串文字转换为 - 你最终可能会得到乱码 CJK 输出。charwchar_t*
0赞 Johnson_Doe 8/9/2023
ShowErrorMessage() 函数接受 _wcserror_s() 需要的 wchar_t*,然后使用 swprintf_s() 格式化,然后使用 MessageBoxW() 输出。
1赞 Dai 8/9/2023
...你明白为什么做事行不通吗?有关示例,请参阅此处:onlinegdb.com/_CW13iSTg(wchar_t*)"nonwide string literal"

答: 暂无答案