member access within misaligned address 0x0000002c3931 for type 'struct ListNode‘
From MWeb
在做leetcode 第2题时使用C语言编写链表时报错
错误复现
报错时的代码如下
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
if(l1==NULL) return l2;
if(l2==NULL) return l1;
struct ListNode* result=(struct ListNode*)malloc(sizeof(struct ListNode));
int tmp=l1->val+l2->val;
if(tmp<10){
result->val = tmp;
result->next = addTwoNumbers(l1->next,l2->next);
}else{
result->val = tmp%10;
struct ListNode* tmpN=(struct ListNode*)malloc(sizeof(struct ListNode));
tmpN->val=tmp/10;
result->next = addTwoNumbers(addTwoNumbers(l1->next,l2->next),tmpN);
}
return result;
}
运行后报错
member access within misaligned address 0x000000000e91 for type 'struct ListNode', which requires 8 byte alignment (ListNode.c)
0x000000000e91: note: pointer points here
错误原因
在程序倒数第6行处申请了一个tmpN指向的结构体ListNode空间,而该结构体中包含next指针,若该节点作为整个链表的最后一个节点,如l1和l2分别指向[5]和[6]时,此时tmpN指向的空间并没有初始化next指针,因此报错。
解决办法
使用NULL初始化next指针指向的内容,如
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
if(l1==NULL) return l2;
if(l2==NULL) return l1;
struct ListNode* result=(struct ListNode*)malloc(sizeof(struct ListNode));
int tmp=l1->val+l2->val;
if(tmp<10){
result->val = tmp;
result->next = addTwoNumbers(l1->next,l2->next);
}else{
result->val = tmp%10;
struct ListNode* tmpN=(struct ListNode*)malloc(sizeof(struct ListNode));
tmpN->next=NULL;
tmpN->val=tmp/10;
result->next = addTwoNumbers(addTwoNumbers(l1->next,l2->next),tmpN);
}
return result;
}
By JZ
Less is more
member access within misaligned address 0x0000002c3931 for type 'struct ListNode‘的更多相关文章
- member access within misaligned address 0x000000000031 for type 'struct ListNode', which requires 8 byte alignment
在做LeetCode的two sum题目的时候,提交代码遇到了如题的runtime error,后来在一篇博客上看到了解决方法. 现有如下结构体: struct ListNode { int val; ...
- 141. 环形链表 LeetCode报错:runtime error: member access within null pointer of type 'struct ListNode'
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...
- leetcode 编译问题:Line x: member access within null pointer of type 'struct TreeNode'
参考: LEETCODE 中的member access within null pointer of type 'struct ListNode' 解决 leetcode 编译问题:Line x: ...
- QT编译错误:member access into incomplete type 'QMouseEvent'
想在QT程序中使用鼠标事件,添加重载的响应函数,并实现后,一直提示 member access into incomplete type 'QMouseEvent' 既然使用了QMouseEvent类 ...
- Protected Member Access
https://msdn.microsoft.com/en-us/library/bcd5672a.aspx 官方的说法The protected keyword is a member access ...
- Access Violation at address 00000000.Read of address 00000000 解决办法
是数组越标或没有初始化某个对象之类的问题,搂住细细检查一下代码, 使用指针前未做检查,而这个指针未初始化. 可能是new后没有delete,这样出现溢出的可能性比较大 检查代码或者跟踪试试 使 ...
- Navicat 提示 Access violation at address ***(如004ECCF4) in module ‘navicat.exe’. Read of address ***(如00000048)
Navicat 提示 Access violation at address ***(如004ECCF4) in module ‘navicat.exe’. Read of address ***(如 ...
- 解决 “access violation at address xxxxxxxxx”错误
在进行磁盘整理的时候,打开Foxmail的时候出现了“access violation at address32383137”错误 和“access violation at address00000 ...
- BCB Access violateion at Address 0000 0003. Read of address 0000 0003
来自网页:(我的电脑做不到) 运行一个程序,莫名出现一个对话框:access violation at address 0000.. read of address000试了几次问题依旧,网上搜了下解 ...
随机推荐
- Django html标签make_safe
from django.utils.safestring import mark_safe a = mark_safe("<a href='#'>test</a>&q ...
- select2加载远程数据示例
核心js $("#query_pack_code").select2({ language: "zh-CN", allowClear: true, width: ...
- ASP.NET中使用UpdatePanel时用Response输出出现错误的解决方法
asp.net中执行到Response.write("xx");之类语句或Microsoft JScript 运行时错误: Sys.WebForms.PageRequestMana ...
- 微信自定义菜单的emoji图标
微信公众号自定义菜单添加emoji表情图标 第一步:打开微信公众平台接口调试工具,点击前往接口调试工具: 第二步:把这段代码 {"button":[{"sub_butt ...
- Redis学习---Redis操作之有序集合
有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kw ...
- 阿里云全球首次互联网8K直播背后的技术解读
3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案.这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播. 视频地址:https://v.q ...
- PHP安装posix、pctl扩展
安装问题 PHP Fatal error: Uncaught Error: Call to undefined function tsingsun\swoole\server\posix_kill() ...
- Springboot 报application.properites文件找不到的解决方法
部署项目遇到了找不到application.properties的问题.网上搜了找不到答案,后面经过测试发现,问题在于clean了maven之后,target包还没删除,所以编译的时候才会出现 ...
- September 29th 2017 Week 39th Friday
Human life is ephemera, which makes it precious. 生命短暂,所以珍贵. Don't waste time on praying to the God. ...
- 面向对象课程 - 寒假第三次作业 - C++计算器项目初始部分
C++计算器项目初始部分 零.项目源文件地址 传送门:calculator 一.项目信息相关: 项目:Calculator 版本:1.0 日期:2016.2.16 实现: 基本的操作界面 对四则运算表 ...