C - 错误:无法在字符串初始化时将"char**"转换为"char*"



我正在制作C控制台菜单程序。 而且我被困在字符*作业上。 有什么好方法可以将字符*分配给字符**吗? 代码如下:

char* group0[14]=
{
//group0:5
"Funciton0-1",
"Function0-2",
"Funciton0-3",
"Function0-4",
"Funciton0-5",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
//... group0~group9 are similiar.
char* group9[14]=
{
//group9:2
"Funciton9-1",
"Function9-2",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
char* name[10][14]=
{
{group0},
{group1},
{group2},
{group3},
{group4},
{group5},
{group6},
{group7},
{group8},
{group9},
};

为什么我不能将这些组分配到这个"名称"数组中? 编译器回复我错误...

谢谢!

当你在name的初始值设定项列表中使用group0时,它将衰减到指向第一个元素的指针。这意味着对于表达式group0,类型将为&group0[0],即char**

假设name应该是指向组的指针数组,您需要相应地更改其类型:

char** name[10] = {
group0,
group1,
...

最新更新