Har*_*der 2 c function fault strcat
static void foo(unsigned char *cmd)
{
strcat(cmd, "\r\n");
printf("\r\nfoo: #%s#", cmd);
}
int main()
{
foo("test");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器说分段错误(核心转储)这里的实际问题是什么?
你有未定义的行为.您不能修改字符串文字.cmd指向字符串文字,并strcat()尝试连接到它,这是问题.
int main(void)
{
char arr[256] = "test";
foo(arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一般需要使用时要小心strcpy(),并strcat()用C等,因为是你完全缓冲区溢出的可能性.在我的例子中,我使用的数组大小为256,这对你的例子来说已经足够了.但是如果你要连接一些未知大小的东西,你需要小心.