C语言指针问题char ***
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
static char * str1[] = {"我们", "是", "中国人", ""};
static char * str2[] = {"我们", "是", "汉族人", ""};
void main()
{
int i = 0;
char **buff;
char ***pt[] = {&str1, &str2};
buff = pt[0];
for(i = 0; ; i ++)
{
if(buff[i] == "")
{
break;
}
printf("%s\n", buff[i]);
}
}
可以输出正确的结果,但有警告:
'initializing' : 'char *** ' differs in levels of indirection from 'char *(*)[4]'
'=' : 'char ** ' differs in levels of indirection from 'char *** '
请问如何解决警告. 但 char *** 及 char ** 都不能去掉.
谢谢,