visual studio 使用指针和 strncat 时触发断点
visual studio triggered a breakpoint when used pointer and strncat
我正在使用以下代码实现 JSON 打包器
int main()
{
char* serializedMessage;
serializedMessage = (char*)malloc(sizeof(char)* 1024);
if (serializedMessage != NULL)
{
strcat(serializedMessage, "{\"");
strncat(serializedMessage, "\":", 3);
strncat(serializedMessage, "{", 1);
strncat(serializedMessage, "\"ds\":[", 8);
strncat(serializedMessage, "}", 1);
std::cout <<serializedMessage <<std::endl;
}
return 0;
}
当运行 in visual studio时,它会在触发断点时抛出错误。我错过了什么。任何建议
您只能在 C 字符串 的目标上使用 strcat
系列函数。 serializedMessage
在您的代码中还不是 C 字符串,它是一大块未初始化的内存。
通过在开头添加空终止符以形成空字符串来解决此问题:
if (serializedMessage != NULL)
{
serializedMessage[0] = '[=10=]';
...
我正在使用以下代码实现 JSON 打包器
int main()
{
char* serializedMessage;
serializedMessage = (char*)malloc(sizeof(char)* 1024);
if (serializedMessage != NULL)
{
strcat(serializedMessage, "{\"");
strncat(serializedMessage, "\":", 3);
strncat(serializedMessage, "{", 1);
strncat(serializedMessage, "\"ds\":[", 8);
strncat(serializedMessage, "}", 1);
std::cout <<serializedMessage <<std::endl;
}
return 0;
}
当运行 in visual studio时,它会在触发断点时抛出错误。我错过了什么。任何建议
您只能在 C 字符串 的目标上使用 strcat
系列函数。 serializedMessage
在您的代码中还不是 C 字符串,它是一大块未初始化的内存。
通过在开头添加空终止符以形成空字符串来解决此问题:
if (serializedMessage != NULL)
{
serializedMessage[0] = '[=10=]';
...