c++ - 我在 while 循环中创建了一个 tmp 结构,但是发生了一些错误,看起来 tmp 结构在一个循环结束时不是空闲的
问题描述
我在while循环中创建了一个tmp结构,但是发生了一些错误,看起来tmp结构在一个循环结束时不是空闲的,但是当我创建一个结构指针时,它可以工作。
class Solution {
公共:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { struct ListNode 节点;
ListNode* head= &node;
ListNode* h=head;
int sum=0;
bool carry=false;
while(l1!=NULL||l2!=NULL)
{
sum=0;
if(l1!=NULL)
{
sum+=l1->val;
l1=l1->next;
}
if(l2!=NULL)
{
sum+=l2->val;
l2=l2->next;
}
if(carry)
sum++;
struct ListNode tmp;
tmp.val=sum%10;
tmp.next=NULL;
// cout<<&tmp<<endl;
// h->next=new ListNode(sum%10);
h->next=&tmp;
h=h->next;
// delete h->next;
carry=sum>=10?true:false;
}
if(carry)
{
h->next=new ListNode(1);
}
return head->next;
}
};
解决方案
我认为这可能是因为您在循环tmp
内的堆栈上创建,然后将其地址分配给. 循环迭代结束后,不再在范围内,但您已在. 您需要在堆上创建才能使其正常工作,正如您通过将其创建为我怀疑的指针所发现的那样。while
h->next
while
tmp
h
tmp
推荐阅读
- flutter - App 仅支持移动设备纵向模式时的 Flutter 响应式设计(不支持 Web、平板、桌面)
- python - 尝试在python中创建一个客户端和服务器来发送和接收一些东西
- r - write_csv() 在 msexcel 中生成银行单元格
- c++ - 断言失败:不知道错误在哪里
- html - 在图片上添加图片html+css
- docker - docker-compose build args 未解决
- embedded-linux - 嵌入式 linux 上 ALSA + PortAudio 的抖动问题
- sql - Oracle:选择当前和最近的先前值(附加新列)
- npm - app@0.0.1 启动脚本失败。开始:`巢开始`
- python - 更新列值谷歌表python