这里似乎发生的事情是我的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个职位,但循环不会去最后一个.
它应该是while (t != NULL).如果你写while (t->text != NULL)你都打开自己不确定的行为一个空的列表,并导致循环无法处理t时,t指向最后一个节点(记住,如果t指向最后一个节点,然后t->next就是NULL和循环将无法运行).
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |