为什么不能使用指针指向char指针而不是char指针数组?

str*_*eek 8 c pointers

当我尝试在下面的代码中初始化第二个选项时names,我得到一个分段错误.我猜第二个选项在概念上有些不正确.有任何想法吗?

 char *names[] = {
            "Alan", "Frank",
            "Mary", "John", "Lisa"
        };

 char **names = {
            "Alan", "Frank",
            "Mary", "John", "Lisa"
        };
Run Code Online (Sandbox Code Playgroud)

Man*_*ana 6

是.在第一种情况下,您有一个指针数组.每个指针指向一个单独的项目(Alan,Frank ......)

第二个宣言

char **names;
Run Code Online (Sandbox Code Playgroud)

暗示名称是指向指针的指针[你不能像这样初始化一组字符串].如在

char *str = "hello"
char **names = &str;
Run Code Online (Sandbox Code Playgroud)