gpt4 book ai didi

c - 数组初始化时不兼容的指针类型

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:44 25 4
gpt4 key购买 nike

下面的数组初始值设定项:

const char** AST_NODE_TYPE_NAMES = {
"AST_NODE_CONSTANT",
"AST_NODE_BINARY",
"AST_NODE_UNARY",
"AST_NODE_VARIABLE",
"AST_NODE_ASSIGNMENT",
"AST_NODE_STATEMENTS",
};

使 gcc 引发以下警告:

initialization of 'const char **' from incompatible pointer type 'char *'

帮我解决这个问题?

最佳答案

你想要指针数组

const char *AST_NODE_TYPE_NAMES[] = {
"AST_NODE_CONSTANT",
"AST_NODE_BINARY",
"AST_NODE_UNARY",
"AST_NODE_VARIABLE",
"AST_NODE_ASSIGNMENT",
"AST_NODE_STATEMENTS",
};

这个数组最终可以贴花到你想要的指针:

const char **foo1 = AST_NODE_TYPE_NAMES;
const char **foo = &AST_NODE_TYPE_NAMES[0];

你也可以使用复合文字(在本例中实际上是指针数组)来初始化这个指针

const char** AST_NODE_TYPE_NAMES =(const char *[]) {
"AST_NODE_CONSTANT",
"AST_NODE_BINARY",
"AST_NODE_UNARY",
"AST_NODE_VARIABLE",
"AST_NODE_ASSIGNMENT",
"AST_NODE_STATEMENTS",
};

关于c - 数组初始化时不兼容的指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56090772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com