我似乎无法理解为什么这不起作用.
全局变量:
int genericSet[] = {1,2,3,4};
int main()...
int* function() {
return &genericSet;
}
Run Code Online (Sandbox Code Playgroud)
为什么在尝试返回此数组时会给我一个错误?是因为它是一个全局变量,如果是这样,为什么会这么重要?我通常如何返回静态声明的数组?我意识到这是额外的工作返回一个全局变量,但它实际上是否阻止了这一点?我只是用它作为占位符并且一直出错.
您的函数类型与返回类型不匹配.你的函数是int*,但你返回的是int**类型.
我不知道为什么每个人都在回答这个问题并且genericSet是一个int**; 事实并非如此.澄清:
int genericSet[] = {1,2,3,4};
typedef int (*ArrayPtr)[4];
int* f1() { return genericSet; }
ArrayPtr f2() { return &genericSet; }
Run Code Online (Sandbox Code Playgroud)