【发布时间】:2012-11-15 00:31:39
【问题描述】:
我知道这个话题已经讨论过好几次了,我想我基本上知道数组和指针之间的区别,但我对数组如何准确地存储在 mem 中很感兴趣。
例如:
const char **name = {{'a',0},{'b',0},{'c',0},0};
printf("Char: %c\n", name[0][0]); // This does not work
但如果它是这样声明的:
const char *name[] = {"a","b","c"};
printf("Char: %c\n", name[0][0]); // Works well
一切正常。
【问题讨论】:
-
“这不起作用”是什么意思?编译并运行第一个示例时会发生什么?
-
在我的系统上,这将导致段错误
-
嗯,甚至无法编译第一个示例
-
嗯,我得到了 gcc 版本 4.6.3,它可以工作(带有警告)
-
也许你尝试用 g++ 编译它?