gpt4 book ai didi

在 while 循环中创建结构体指针

转载 作者:行者123 更新时间:2023-11-30 20:53:23 25 4
gpt4 key购买 nike

我刚刚意识到,在 while 循环中,当我创建结构体指针时,循环结束时该指针似乎未定义。我不确定是否存在在 while 循环中创建的指针不能在其外部使用的情况。这是我的代码的一部分:

if('D'==Status) //depature
{
while(Top(T)->CarLicense != CarLin) {
struct CarNode * tmp;
tmp = Top(S);
Push(TopAndPop(S), T);
tmp->Movement++;
}
printf("Moved %d, bye!\n",tmp->Movement);
DisposeCar(TopAndPop(T));
while(!(IsEmpty(T))) {
struct CarNode * tmp2;
tmp2 = Top(T);
Push(TopAndPop(T),S);
}
}

这里,在 printf("Moved %d, bye!\n",tmp->Movement); 中,tmp 似乎未定义。

最佳答案

因为 tmp 是在 while block 中声明和定义的,所以当循环完成时它就会超出范围。您需要在循环上方的行中声明它,以便它在到达 printf() 时仍然可见。

关于在 while 循环中创建结构体指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49002297/

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