vik*_*man 2 c gcc pointers segmentation-fault
当我为gcc启用-O时,是什么导致输出"Hello"?它不应该仍然是段错(根据这个维基)?
% cat segv.c
#include <stdio.h>
int main()
{
char * s = "Hello";
s[0] = 'Y';
puts(s);
return 0;
}
% gcc segv.c && ./a.out
zsh: segmentation fault ./a.out
% gcc -O segv.c && ./a.out
Hello
Run Code Online (Sandbox Code Playgroud)