【发布时间】:2013-06-20 20:55:16
【问题描述】:
我想在 C 中定义不同的字符串数组,然后可以是例如根据其他值选择,即如下所示:
char foo[][10] = {"Snakes", "on", "a", "Plane"};
char bar[][10] = {"Fishes", "in", "a", "Lake"};
char *choice;
if (flag == 1) {
choice = &foo;
} else if (flag == 2) {
choice = &bar;
}
printf("%s%s\n", choice[0] , choice[1]);
flag 为 1 时的预期结果:
毒蛇
flag 为 2 时的预期结果:
钓鱼
但上面的代码给出了segmentation fault 错误,而我尝试了char 的不同定义,即char* 和char**。怎么做才对?有没有关于这个问题的好教程,即关于指针,数组,上面的例子中foo到底是什么......
【问题讨论】:
-
参见 printf 的手册页。您以非常错误的方式使用它!尝试 printf("%s%s\n",choice[0] ,choice[1]);
-
编译时出现警告 (gcc:
-Wall) -
@Maneolin - 你是对的 - 我更新了代码。但是错误还是一样的(
segmentation fault)。 -
线程 stackoverflow.com/questions/2003745/… 应该对你有帮助。