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试了几次问题依旧,网上搜了下解 ...
随机推荐
- 1.创建maven 项目 动态web工程完整示例
注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了 没有的话需要安装maven 一.创建项目 1.新建maven项目,如果不在上 ...
- es知识点
版权声明:本文为博主原创文章,未经博主允许不得转载.转载请务必加上原作者:铭毅天下,原文地址:blog.csdn.net/laoyang360 https://blog.csdn.net/wojius ...
- RHEL7系统管理之资源管理
1. CGroup(控制群组).slice(切片).scop.service 控制群组(control group)是linux kernel的一项功能, 该功能允许linux对RHEL7中syste ...
- OSCache-缓存对象
在实际应用中除了JSP标签库,还可以使用OSCache提供的Java API.下面我来介绍一个实用的Java类,使用GeneralCacheAdministrator来建立,刷新和管理缓存. Gene ...
- mysql(5.7.17)字符集设置(character_set/collation)
0 查看字符集(character_set/collation) use information_schema;desc tables; --一定记住tables表,information_sc ...
- 用TableView写带特效的cell
用TableView写带特效的cell 效果: 源码地址: https://github.com/YouXianMing/UI-Component-Collection 分析: 在UIScrollVi ...
- 可以触发点击事件并变色的UILabel
可以触发点击事件并变色的UILabel 谁说UILabel不能够当做button处理点击事件呢?今天,笔者就像大家提供一个改造过的,能够触发点击事件并变色的UILabel:) 效果图: 还能当做计时器 ...
- 配置nginx官网yum源
由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源 二.添加nginx.repo 文件: [roo ...
- Linux 系统的磁盘分区_【all】
磁盘的存储逻辑结构 1.主引导扇区(446+64+2) MBR(主引导记录)0磁头0磁道的第一扇区 446字节 -->存放系统的引导程序,同Windows 剩下的64字节,分区表(每个分区16字 ...
- win10 虚拟机 hyper-v 安装 centos 7
一.win 10 企业版 自带虚拟机 hyper-v 1.控制面板-->程序和功能-->启用或关闭Windows功能 勾上 hyper-v 确定就ok了 2.安装成功后会发现在 左下角“开 ...