gpt4 book ai didi

c - strcat_s 和 char 指针新手问题

转载 作者:行者123 更新时间:2023-11-30 19:08:56 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 进行简单的 C 练习。使用 strcat_s 函数,我通过以下代码收到违规异常:

char *str1;
str1 = (char *)malloc(20);
*str1 = "Ciao ";
char *str2 = "Marco";
strcat_s(str1, sizeof(str1), str2);
printf("%s", str1);

现在,如果我使用固定大小的预定义数组,strcat_s 可以完美工作。如何使用指向 char 的指针而不是数组来使其工作?

任何其他解决方案或提示将不胜感激。

提前谢谢您。

最佳答案

您必须首先将字符串复制到分配的内存中。如果您想知道字符串的长度,请使用strlen()sizeof() 返回数据类型的大小(以字节为单位)。在您的情况下,它是一个指针(32 位机器上为 4 字节,64 位机器上为 8 字节)。以下代码应该可以正常工作:

char *str1 = (char *)malloc(20);
strcpy(str1,"Ciao ");
char *str2 = (char *)malloc(20);
strcpy(str2,"Marco ");
strcat(str1, str2);
printf("%s", str1);

关于c - strcat_s 和 char 指针新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027655/

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