我正在摆弄邮筒,现在我遇到了一个问题。 每当我尝试运行时,我都会在标题中收到错误消息,但我不知道应该如何修复它。 我想做的是“修复”邮槽的完整路径,但它似乎不喜欢 strcat_s-part。
HANDLE mailslotCreate (char *name) {
char fullName[50] = "\\\\.\\mailslot\\";
strcat_s(fullName, strlen(fullName), name);
return CreateMailslot(fullName, 0, TIME_OUT, NULL);
}
编辑:将 strlen 更改为 sizeof 只是将错误更改为“缓冲区大小太小”。
最佳答案
请参阅有关 strcat_s 的文档.它说第二个参数应该是目标缓冲区的大小。当您传递 strlen(fullName)
时,没有终止 \0
的空间。
将其更改为 sizeof(fullName)
,您的错误应该会消失。
关于c - 表达式 : (L "String is not null terminated" & & 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158307/