使用 strcat() 时跟踪陷阱
Trace trap when using strcat()
我目前正在学习用 C 语言编程,我不明白为什么我的终端输出:“zsh: trace trap ./a.out”当 运行 我的代码时。
这是我的代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Hello ";
char str2[] = "Wolrd!";
strcat(str, str2);
printf("%s\n", str);
return 0;
}
这是我在终端输入的内容:
gcc test.c
./a.out
问题是 str
是根据您用来初始化的文字的大小分配的。 strcat
假设您有足够的空间连接两个字符串。
将 str[]
更改为 str[100]
并且它会起作用,因为您有足够的 space 用于两个字符串。这解决了您的问题,但您需要了解数组、内存分配并阅读 strcat
.
等函数的期望
我目前正在学习用 C 语言编程,我不明白为什么我的终端输出:“zsh: trace trap ./a.out”当 运行 我的代码时。
这是我的代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Hello ";
char str2[] = "Wolrd!";
strcat(str, str2);
printf("%s\n", str);
return 0;
}
这是我在终端输入的内容:
gcc test.c
./a.out
问题是 str
是根据您用来初始化的文字的大小分配的。 strcat
假设您有足够的空间连接两个字符串。
将 str[]
更改为 str[100]
并且它会起作用,因为您有足够的 space 用于两个字符串。这解决了您的问题,但您需要了解数组、内存分配并阅读 strcat
.