我已经很久很久没有做过任何严肃的 C 语言了,希望能得到一个快速的解释。以下代码在 HP/UX 上编译并运行良好。它在 Ubuntu 中的 GCC 4.3.2 上编译时没有任何警告(即使使用 gcc -Wall),但在 Linux 上运行时会出现段错误。
谁能解释为什么?
#include <stdio.h>
int main() {
char *people[] = { "Abigail", "Bob" };
printf("First: '%s'\n", people[0]);
printf("Second: '%s'\n", people[1]);
/* this segfaults on Linux but works OK on HP/UX */
people[1][0] = 'R';
printf("First: '%s'\n",people[0]);
return(0);
}