gpt4 book ai didi

c - 为什么 gcc 说我有未声明的变量 'newNode'?

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

当我编译以下 C 代码时,gcc 报错说在 return newNode 行中未声明“newNode”,但我不明白为什么。谁能解释这个错误或如何解决它?

node *insertNode(node *first, int cases) {
int i;
int m;
int n;

for(i=1;i<=cases-1;i++) {
scanf("%d %d",&m,&n);
node *newNode = (node *)malloc(sizeof(node));
newNode->lower = m;
newNode->upper = n;
newNode->next = first;
newNode = first;
}

return newNode; }

谢谢,

最佳答案

newNode 在循环中声明。在 block 中声明的变量超出 block 外的范围。相反,您可能希望在循环开始之前声明一个指向堆上节点的指针数组,在循环中初始化它们,然后返回该数组。如果这样做,您必须将函数的返回类型更改为 node**

关于c - 为什么 gcc 说我有未声明的变量 'newNode'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27852427/

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