当前位置: 首页 > news >正文

数据结构day2

目录

一、Makefile

二、检测内存泄漏工具:valgrind

2.1valgrind介绍    

2.2具体使用:valgrind ./a.out

三、顺序存储的优缺点

3.1优点

3.2缺点

四、线性表的链式存储:

4.1链式存储简介

4.2关于单向链表的c语言描述

4.3单项列表的功能函数


一、Makefile

关于makefile介绍请查看这篇文章:

https://blog.csdn.net/weixin_72086349/article/details/148878718?spm=1001.2014.3001.5501

二、检测内存泄漏工具:valgrind

2.1valgrind介绍    

Valgrind是一套开放源代码(GPL V2)的仿真调试工具集合,由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件(plug-in),利用内核提供的服务完成各种特定的内存调试任务。

        Valgrind 是一个强大的内存调试和性能分析工具,广泛用于 Linux 系统上的程序开发和测试。它可以帮助开发者检测内存泄漏、数组越界、未初始化变量等问题,并提供详细的报告。Valgrind 支持多种编程语言,尤其是 C 和 C++。

        Valgrind可以帮助开发者检测和修复程序中的内存问题和性能瓶颈。通过合理使用 Valgrind 的各种工具和选项,可以显著提高程序的质量和性能。

2.2具体使用:valgrind ./a.out

关键部分的解释
HEAP SUMMARY(堆内存总结):

                                          in use at exit: 程序退出时,仍然占用的内存量。这里显示为56字节。
                                          total heap usage: 堆内存的总使用情况,包括分配和释放的统计信息。
LEAK SUMMARY(泄漏总结):

                                          definitely lost: 确定的内存泄漏。显示为56字节。
                                           indirectly lost: 间接泄漏的内存。这是因为某些对象或数据结构被遗忘,导致它们无法被释放。
                                          possibly lost: 可能泄漏的内存。Valgrind不能确定,但有可能丢失。
                                          still reachable: 仍然可达的内存。内存尚未释放,但可以通过有效的指针访问。通常这不是泄漏,但可能表示内存管理不当。
                                         suppressed: 被抑制的内存问题数量。

三、顺序存储的优缺点

3.1优点

    1、无需为表中的逻辑关系增加额外的存储空间
    2、可以快速随机访问元素O(1)

3.2缺点

    1、插入,删除元素需要移动元素o(n)
    2、无法动态存储。

四、线性表的链式存储:

4.1链式存储简介

内存上不是连续存储,解决顺序存储的缺点,插入和删除,动态存储问题程序运行起来之后需要多大空间开辟多大,编写时需要多大不确定。

特点:线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的也可以不连续。可以被存储在任意内存未被占用的位置上。所以在链式结构中还需要一个元素存储下一个元素的地址。

为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。把存储元素信息的域叫数据域,把存储直接后继位置的域叫指针域。这两部分信息组成数据元素ai的存储映像,叫结点(Node);

4.2关于单向链表的c语言描述

typedef struct person {char name[32];char sex;int age;int score;
}DATATYPE;typedef struct node {DATATYPE data;struct node *next;
}LinkNode;typedef struct list {LinkNode *head;int tlen;int clen;
}LinkList;

4.3单项列表的功能函数

相关文章:

  • 北京做网站费用怎么弄一个自己的链接
  • 房地产网站建设联系方式外贸网站搭建
  • 合肥行业网站建设上海网络推广外包公司
  • wordpress ajax查询文章电脑上突然出现windows优化大师
  • 网站咨询弹窗怎么做外贸推广具体是做什么
  • 要做个卖东西网站怎么做东莞seo外包公司
  • 【你拍一E1】L1-七巧板之结构练习-复习课
  • 深入理解 MySQL 8.0 慢日志:原理、使用与案例分析
  • 精准把脉 MySQL 性能!xk6-sql 离线并发测试深度指南
  • 深入剖析 LGM—— 开启高分辨率 3D 内容创作新时代
  • OpenCV CUDA模块设备层-----创建一个“常量指针访问器” 的工具函数constantPtr()
  • 开篇:4周的时间设计并开发一个个性化具备专业知识的东方命理师AI agent!
  • Jenkins 全面解析:作用、功能、优势与对比
  • 猿人学js逆向比赛第一届第十三题
  • Web Worker 通信封装与实战应用详解
  • C语言专题——关键字详解
  • Kafka的消费消息是如何传递的?
  • 关于Makefile
  • 【动手学深度学习】4.7. 前向传播、反向传播和计算图
  • 飞算 JavaAI 插件炸场!一小时搭图书管理系统
  • Python训练营-Day40-训练和测试的规范写法
  • 10-C#的dataGridView1和datatable的使用
  • 【Pandas】pandas DataFrame merge
  • 飞往大厂梦之算法提升-day08
  • libevent(1)之基础概述
  • 网站公安网安备案查询API集成指南