【发布时间】:2017-05-11 11:27:45
【问题描述】:
我是 C 初学者,但我通过终端上的 gcc 在 xcode 上运行此代码:
#include <stdio.h>
#include <string.h>
int main(){
char name[12] = "Roman Mirov";
printf("My name is %s\n", name);
name[8] = 'k';
printf("My name is %s\n", name);
char greeting[] = "hello";
printf("%s %s\n", greeting, name);
strcpy(greeting, "greetings, ");
printf("%s%s\n", greeting, name);
return 0;
}
它会输出这个:
My name is Roman Mirov
My name is Roman Mikov
hello Roman Mikov
Abort trap: 6
我的问题是,为什么它会产生错误而不是将最后一行显示为输出“greetings, Roman Mikov”?
【问题讨论】:
-
这里没有问题!!!
-
这两个线程将有助于您更好地理解关于写入您不拥有的内存的关键点。 stackoverflow.com/questions/26431147/abort-trap-6-error-in-cstackoverflow.com/questions/29401116/abort-trap-6-in-c-program
-
@barakmanos 如果您看不到问题,我会解决这个问题。
-
是的,我终于能看到了,但你还是应该让它更清楚。