C++ MBS导致我的程序崩溃

C++ MBS导致我的程序崩溃,c++,visual-c++,C++,Visual C++,以下是相关代码: char c; size_t buffer_size = 0; wchar_t* wc = (wchar_t*) malloc(buffer_size); int result = recv(this->m_socket, &c, 1, 0); mbstowcs_s(&buffer_size, wc, buffer_size, &c, 1); // Something is wrong here 如何修复此问题?您为wc分配了0个字节,并将该缓

以下是相关代码:

char c;
size_t buffer_size = 0;
wchar_t* wc = (wchar_t*) malloc(buffer_size);

int result = recv(this->m_socket, &c, 1, 0);
mbstowcs_s(&buffer_size, wc, buffer_size, &c, 1); // Something is wrong here

如何修复此问题?

您为
wc
分配了0个字节,并将该缓冲区传递给
mbstowcs

我遇到了相同的问题。 问题出现在最后一个参数中,该参数表示“要存储在wcstr缓冲区中的最大宽字符数,不包括终止null或_TRUNCATE。”


谢谢。将其更改为size\u t buffer\u size=2;最好使用
size\u t buffer\u size=sizeof(wchar\u t)要更清楚地表达您的意思,最好不要对2个字节使用malloc:)