小编Sha*_*022的帖子

如果两者都为真,那么带&&的循环结束,而不是两者都为真

我有这个while循环,如果其中一个是真的,它总是结束,而不是只有两个都是真的结束.有没有人知道为什么?

while (f != NULL && t!= NULL)
{
    if ( f == NULL && t!= NULL)
    {
        cout << t->start_byte << " - "<< left<< setw(20) << t-> end_byte <<  t->id << endl;
        t=t->next;
    }
    else if (t == NULL && f != NULL)
    {
        cout << f->start_byte << " - "<< left<< setw(21) << f-> end_byte << "FREE" << endl;
        f=f->next;
    }
    else
    {
        cout << f->start_byte << " - "<< left<< setw(21) << f-> end_byte << "FREE" …
Run Code Online (Sandbox Code Playgroud)

c++ loops linked-list while-loop

1
推荐指数
1
解决办法
171
查看次数

while循环总是提前结束一个循环

这里似乎发生的事情是我的while循环每次都提前结束1循环.它被设置为一直持续到t-> next为NULL.虽然它总是提前停止,即使 - >下一个指针确实指向某个东西.这是代码.我在代码的其他部分完成了所有正式声明和其他操作,所以我不会在这里发布它们以保持简单

int job_allocated(const int job)
{
  ALLOCPTR t = alloclist;


  int sizeofjob = 0;


  while(t->next!=NULL)
  {

    if(t->id==job)
    {

        sizeofjob=sizeofjob+t->size;
    }

    cout << t << endl;
    cout << t->id << endl;
    cout << t->next << endl;
    t=t->next;

}
Run Code Online (Sandbox Code Playgroud)

这是输出

0x600010540
2
0x600010520
0x600010520
3
0x600010500
0x600010500
2
0x6000104e0
Run Code Online (Sandbox Code Playgroud)

正如您所看到的 - > next指针确实指向内存,但由于某种原因,while循环在之后结束,而不是再运行一次.

在我的main我有我已拨出4个职位,但循环不会去最后一个.

c++ linked-list

0
推荐指数
1
解决办法
54
查看次数

标签 统计

c++ ×2

linked-list ×2

loops ×1

while-loop ×1