gpt4 book ai didi

不能 strcat_s 多个字符到字符串指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:34:15 28 4
gpt4 key购买 nike

我正在尝试将多个字符串连接到一个我已为其分配内存的字符串指针。这是一个例子:

char *finalNumString = malloc(sizeof(char)*1024);
finalNumString[0] = '\0';
strcat_s(finalNumString, 10, "abcabcabc");
printf("added %d chars to finalNumString\n", 10);
strcat_s(finalNumString, 10, "abcabcabc");
printf("added %d chars to finalNumString\n", 10);
strcat_s(finalNumString, 10, "abcabcabc");
printf("added %d chars to finalNumString\n", 10);

在执行第一个 strcat_s 命令后,我收到错误消息“调试断言失败:L 缓冲区太小。”但是我已经分配了内存!为什么这不起作用?

最佳答案

根据 msdn page of strcat_s() 函数,它的定义是:

errno_t strcat_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);

在这里,numberOfElements指的是目标字符串缓冲区的大小。所以你需要发送1024 (这是目标字符串的大小)作为你的第二个参数而不是 10每次使用 strcat_s()以这种方式运行:

strcat_s(finalNumString, 1024, "abcabcabc"); 

关于不能 strcat_s 多个字符到字符串指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678228/

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