gpt4 book ai didi

c++ - wcstombs_s 无法正常工作

转载 作者:行者123 更新时间:2023-11-27 23:32:20 26 4
gpt4 key购买 nike

我在代码中使用 wcstombs_sCString 转换为 char*。这是代码:

  AddItemToListIncludeSubFolder(CString FolderPath, CString Parent)
{
char szInputPath[1024];

memset(szInputPath,1024,'\0');
size_t CharactersConverted=0;

wcstombs_s(&CharactersConverted, szInputPath, FolderPath.GetLength()+1,
FolderPath, _TRUNCATE);
}

它有时会引发异常。内存异常。 wcstombs_sCString 太长(如 1024 个字符)或我做错了什么时无法正常工作。

最佳答案

wcstombs_s的第三个参数是输出缓冲区的大小,不是要转换的字符串的大小。如果 FolderPath 长于 1024 个字符,则说明您正在越界写入内存,因为 wcstombs_s 认为它具有比实际更大的缓冲区。

试试这个:

wcstombs_s(&CharactersConverted, szInputPath, sizeof(szInputPath),
FolderPath, _TRUNCATE);

关于c++ - wcstombs_s 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4222804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com