According to this response pointers to pointers
char[] = char *p
char[][] = char **p
But, when I initialize an array of strings with the next two forms
char **p = {"Hello", "World"};
char p[][] = {"Hello", "World"};
The compiler shows me some Error.
[Error] array type has incomplete element type
But with
char *matriz[] = {"Hello", "World"};
There is no warning. I'm new in C language, and I'm very confused.
C, and that's not a warning, it is an ERRORarrays and pointers are same? Is that what you meant?char[][]withchar **is not going to be dreadfully helpful; the two are quite different. In fact,char[]is not the same aschar *either, but when you use those notations in the parameter list for a function, they are equivalent (that is:void something(char data[])andvoid something(char *data)are equivalent in this one important context). However,void otherthing(char data[][10])andvoid otherthing(char **data)are not equivalent at all.