gpt4 book ai didi

c++ - 不明白C++中的strcpy

转载 作者:行者123 更新时间:2023-12-01 20:26:24 25 4
gpt4 key购买 nike

char* s1;
strcpy(s1,"smilehihi");
s1[6] = 'a';

当我编译时,VS没有任何错误。但在运行时,我的代码出错了。我想我不太了解strcpy

最佳答案

这里的主要问题不是 strcpy() 函数,而是您没有为字符串本身分配任何内存。如果我是你,我会做类似的事情

char* s1=(char*)malloc(SIZE); // the SIZE is the predefined maximum size of your string
strcpy(s1,"smilehihi");
s1[6] = 'a';

编辑:

作为建议,请考虑使用 stpncpy()。它有助于避免缓冲区溢出,并且根据您的情况,将帮助您避免超过 char*

的最大大小
char * stpncpy(char * dst, const char * src, size_t len);

关于c++ - 不明白C++中的strcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61334847/

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