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=]';
  ...