错误记录,链表建立逻辑错误

(华为OJ)C 语言—中级  简单错误记录 题目要求: 1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加; 2、 超过16个字符的文件名称,只记录文件的最后有效16个字符; 3、 输入的文件可能带路径,记录文件名称不能带路径。 解题思路: 1、首先定义一个结构体,用来存放文件名和行数还有第几个错误 2、循环记录, 利用while ( getchar() != ‘\n’ ),来判断... 阅读详情
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

typedef struct LNode
{
	int data;
	struct LNode* next;
}LNode;

int main()
{
	void createlist(LNode*&, int);
	void mergelist(LNode*, LNode*, LNode*&);
	void printlist(LNode*);
	LNode* a, * b, * c;
	int n1, n2;

	cout << "Please enter the length of the first linked list:";
	cin >> n1;
	createlist(a, n1);
	cout << "Please enter the length of the second linked list:";
	cin >> n2;
	createlist(b, n2);
	mergelist(a, b, c);
	printlist(c);
	
	return 0;
}

void createlist(LNode*& a, int n)
{
	LNode* p;

	a = (LNode*)malloc(sizeof(LNode));
	p = a->next;
	cout << "Please enter the elements of the linked list one by one in an increasing order:";
	for (int i = 0; i < n; i++)
	{
		cin >> p->data;
		p->next = (LNode*)malloc(sizeof(LNode));
		p = p->next;
	}
	p->next = NULL;

	return;
}

void mergelist(LNode* a, LNode* b, LNode*& c)
{
	LNode* p;

	c = (LNode*)malloc(sizeof(LNode));
	p = c->next;
	while (a != NULL && b != NULL)
	{
		if (a->data < b->data || b == NULL)
		{
			p->data = a->data;
			a = a->next;
		}
		else
		{
			p->data = b->data;
			b = b->next;
		}
		p->next = (LNode*)malloc(sizeof(LNode));
		p = p->next;
	}
	p->next = NULL;

	return;
}

void printlist(LNode* a)
{
	a = a->next;
	while (a)
	{
		cout << a->data;
		if (a->next)
		{
			cout << " - ";
		}
	}

	return;
}

 

记录一次内存错误排查过程 问题现象 一个播放器的实现代码,在多次播放后,出现异常挂死,gdb显示如下图 通过bt命令查看函数调用栈,只有一条有效消息,就是 “#3 0xa0” 这个地址明显是错误的。所有怀疑是栈被破坏了。 直接报错内容也是多种多样。以下这些错误都出现过。 double free or corruption (!prev) corrupted size vs. prev_size double free or corruption (out) malloc(): memory corruption ... 阅读详情

相关推荐

链表操作避坑指南:C语言中常见的链表错误及解决方法

本文深入剖析了C语言链表操作中的常见陷阱,重点讲解了内存泄漏、悬垂指针等内存管理难题,以及指针操作顺序、边界条件处理等关键技巧。通过具体的错误代码示例与修正方案,为开发者提供了一套实用的避坑指南和防御性编程策略,帮助写出更健壮、可靠的链表代码。

weixin_28455801的博客 314

C/C++--5--pointer targets in passing argument 1 of ‘strlen‘ differ in signedness成功解决

问题: pointer targets in passing argument 1 of 'strlen' differ in signedness 传递参数 1 “strlen”中的指针目标的符号不同 原因: 一般是形参与实参的参数类型不匹配。 解决: 修改实参、或者形参类型,使两者保持一致。 将实参类型强制类型转换成形参类型,可消除警告。 ...

天明宇朗的博客 7634

C语言单链表实现的校园卡刷卡记录管理系统(含教职工补贴逻辑)

用纯C语言写的校园卡管理程序,底层用单向链表动态存取数据,不依赖固定数组大小。能管理最多30张校园卡,每张卡支持录入、查询、修改和删除,每卡最多保存100条刷卡记录。消费类型分四类:存款、食堂消费、超市消费、洗漱消费。存款记录带时间戳和金额;食堂消费额外记录商家序号(对应具体食堂档口)、时间、金额,并内置自动补贴规则——教职工单次消费超过20元时,系统实时返还5元到卡内余额。所有增删改查操作都基于链表节点动态处理,包括插入新卡、追加记录、按卡号查找、按类型筛选、余额实时更新等。压缩包里有可直接编译运行的Sc

bash7scripter的博客 186

【GCC】warning: pointer targets in passing argument 1 of ‘strlen‘ differ in signedness

环境 MPLAB X IDE版本:v5.10 编译器:xc16-gcc v1.20 原因 这种情况一般是形参与实参的类型不匹配造成的,将实参类型强制转换成形参类型即可消除警告。 ...

sunriver2000的专栏 6132

Docker+vLLM内网离线部署Qwen3 流程

本文介绍了在CentOS 7系统下进行VLLM容器化部署Qwen3-32B大模型的内网离线方案。首先需准备Nvidia显卡驱动、CUDA 12.4和Docker环境。通过联网机器拉取vllm/vllm-openai镜像并导入内网服务器,同时从魔塔社区下载模型文件。部署时使用docker run命令启动容器,配置了GPU资源、内存共享、端口映射等参数,特别指定了模型路径、并行计算、内存利用率等关键参数。该方案实现了大模型在内网环境的安全高效部署,适用于需要离线运行的AI推理场景。

qq_42881308的博客 1036

rag综述——RAG技术发展流程、最新技术挑战与系统级优化

RAG技术发展综述:本文系统梳理了检索增强生成(RAG)技术的演进历程,从2017年开放域问答中的早期探索,到2020年正式提出RAG架构并与大模型深度融合,再到2025年向系统化、可信化和智能体化发展。当前RAG面临检索可靠性、系统效率和生成可信度三大核心挑战,解决方案包括领域自适应训练、强化语义编码、迭代检索策略等优化方向。未来RAG将向GraphRAG、SafeRAG等方向发展,从单纯性能优化转向构建可控、可审计的语言系统框架,成为高可靠大模型应用的基础设施。

lovehu6686的博客 1242

C 语言编译常见错误汇总

此篇博客会根据遇到的C 语言编译相关错误的时间不定期更新。 1.1 warning:implicit declaration of function 此错误的意思为:函数的隐式说明。 一般的出错原因:相关的头文件没有声明这个函数。 解决办法:在相关头文件中声明即可。 1.2 error: invalid storage class for function'xxxxxxx' 此错误的意思为:函数...

Zombie's blog 2659

IEEE Access投稿全流程解析:从初次提交到最终接收的完整指南

本文详细解析了IEEE Access期刊从初次投稿到最终接收的全流程,包括ORCID注册、论文投稿七步法、回稿再投流程及最终版提交等关键步骤。特别强调了4-6周快速同行评审的特点,为研究者提供了一份实用的投稿指南,帮助高效完成IEEE Access期刊投稿。

weixin_29273849的博客 915

C语言基础-程序常见错误(一)

C语言编程,程序error/warning/info

shuaixio的博客 4842

富斯遥控器-ros机器人控制

富斯遥控器-ros机器人手柄控制

zkh7758的博客 1699

PyTorch深度学习实战(24)——使用U-Net架构进行图像分割

图像分割 (Image segmentation) 是计算机视觉领域中的一个重要任务,旨在将图像划分为具有语义信息的不同区域或对象。与目标检测任务不同,图像分割要求像素级别的精确定位和分类,将每个像素标记为属于哪个类别或属于哪个区域。在本节中,我们将介绍图像分割的基本概念,并训练一个基于 U-Net 架构的图像分割模型。

盼小辉丶的博客 1万+

线性表与13个基本操作的实现

ElemType :线性表数据元素数据类型 LIST_INIT_SIZE : 线性表初始数据元素容量 INFEASIBLE :0 二、线性表结构体 typedef struct { ElemType *elem; //存储空间基址 int length; //当前数据元素个数 int listsize; //当前分配...

qq_42265608的博客 666

【OpenFOAM】-olaFlow-算例10-wavemakerTank

采用 Flap和Piston两种方式的动网格进行造波

ou_no的博客 2167

顺序链表逻辑问题记录

本blog是记录数据结构链表部分的一个我犯过的逻辑问题。 如图,输入一组数据,以-1作为结尾且不接收-1, 以链表的形式储存并逆向遍历输出。 逻辑如下图 由于要求逆向输出,我本能的选择在接收数组的时候提前将数据反转。但结果却使我困惑于输出的结果。于是从逻辑入手,第一次循环产生链表确实会产生如我所预想的结果,但第二次的加入的结点却出现在head与第一个temp中间,第三次会出现在head与第二个temp中间,最终导致输出结果的错误。我有考虑过移动head能否解决问题,但我发现head更像是链表..

qq_51474374的博客 163

【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇1(附项目源码)

生存和射击游戏一直是我的最爱,说起3D最普遍的应该就是射击系统了,你可以在任何情况下加入射击功能,所以我写下了这篇FPS开发记录。希望对你有帮助。在这个项目中,你将学习如何设计和实现射击系统、武器系统、玩家控制、场景设计等方面的内容。通过这个项目,你将深入了解游戏开发中的许多核心概念和技术,并且在实践中不断提升自己。本项目将带你从零开始逐步实现一个完整的第一人称射击游戏,并且会逐步引入一些高级功能,如特效、声音等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5499

innovus:InstPad、CellPad 、module padding、clock cell halo

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?site_num指的是padding的大小以site宽度为单位。

m0_61544122的博客 2024

双向链表的实现以及一个小小的错误记录

#include&amp;lt;stdlib.h&amp;gt; #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;iostream&amp;gt; using namespace std; typedef int Position; typedef struct Circle { int Data; Circle *Pre,*Next; }MyCircle; bool In_Ins

weixin_41908108的博客 463

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数据结构-单链表学习记录及常见错误

记录学习心得

weixin_52426770的博客 362

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【数据结构基础笔记】第二章线性表之单链表

目录 一、简要 1、涵盖内容 2、学习要求 二、导入 三、线性链表 1、链式存储结构 2、注意点 四、单链表 1、单链表优点 2、单链表缺点 3、结点类型描述 4、注意点 五、单链表的实现 1、链表的创立 2、链表的操作 3、代码应用 一、简要 好久没有写基础笔记了,当时为了写基础笔记是为了能重新巩固数据结构,后来因为考研,就改成了数据结构周周练,但是很多同学看...

水亦心的博客 3727

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

2.9静态链表和动态链表区别详解

前面学习了链表,其存储结构如图 1 所示: 图 1 链表存储结构 类似图 1 这样的链表,它更喜欢人们称它为 "动态链表"。 随后又接触了静态链表。同样是存储图 1 中的数据 {1,2,3},使用静态链表存储数据的状态如图 2 所示: 图 2 静态链表存储数据示意图 为了让读者分清动态链表和静态链表,本节来分析一下它们之间的区别和联系。 静态链表和动态链表的共同点是,数据之间"一...

weixin_42437172的博客 1107

对链表的进一步理解(由判断链表是否是回文的错误想法引起的思考)

        可能只有我会傻傻地理解错,哈哈,还好及时纠正了!         在判断一个链表是否是回文时,我简单地以为只要把链表反转然后比较反转前后的值是否相同即可,但是忘了链表操作的只是头指针,存储的也只是头指针,不是整个链表!!!当...

Hcaroline 178

数据结构——创建一个带头节点的单链表(C语言)

基础的单链表的构建,以及前插法、后插法在输入数据时的应用。还有一些细小的不同引发的非法访问及其解决方法。

weixin_73849400的博客 7391

链表专题算法学习记录

链表专题算法学习

2401_87023016的博客 305

数据结构 C 代码 2.3: 双向链表

双向链表是一种更高级的链表数据结构,它在单链表的基础上进行了扩展。与单链表相比,双向链表的每个节点包含三个部分数据部分- 存储实际数据前驱指针(prev)- 指向前一个节点的地址后继指针(next)- 指向下一个节点的地址。

2501_90782472的博客 1681

个人学习记录——双指针(1)——链表篇

双指针是一种常用的算法技巧,通过使用两个指针遍历数据结构来解决问题。主要分为两种类型:快慢指针(同向移动)和相撞指针(反向移动)。在链表问题中,双指针常用于合并有序链表、分解链表、查找倒数第N个节点、寻找中点以及判断环等场景。使用技巧包括:虚拟头节点简化边界处理、及时断开原链表连接避免成环、快慢指针定位特殊节点位置等。典型应用包括合并两个有序链表(拉拉链)、分解链表(解拉链)、查找倒数节点和中点、检测环并定位环起点等。这些技巧能有效提高链表问题的解决效率。

一个努力学习技术的大学生 1113

链表入门:“单链表“的基本操作详解(C语言)-基础教程

本文介绍了单链表的基本概念和操作实现。内容包括:1)链表概念:链式存储结构、头结点、空链表等;2)基本操作实现:初始化链表、增删查改操作,具体包括头插法、尾插法、指定位置插入、删除元素、查找元素等;3)错误案例分析:初始化链表时的常见错误;4)完整代码示例:展示了链表初始化、插入、删除、打印等操作的实现和运行效果。文章详细讲解了每个操作的实现思路和代码逻辑,并配有错误处理机制,适合学习链表基础操作的读者参考。

Mzyh的博客 1万+
上一篇: 尾插法建立链表Establish a Linked List Using the Tail Interpolation
下一篇: 记录错误2
coder12345678
博客等级 码龄5年 2粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值