自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 【CSAPP】-cachelab实验

通过实验任务的一步步完成,我仿佛置身于一个编程迷宫,需要用巧妙的策略和算法来解决缓存优化的难题。替换策略、写回/写分配策略等概念,让我感受到了计算机系统中微妙而又重要的平衡。通过实现特定的替换策略和写回/写分配策略,我逐渐掌握了如何有效地利用缓存来提高程序性能的技巧。通过调整缓存策略和优化程序代码,我逐步提高了程序的效率,并体会到了优化对程序性能的重要性。

2024-07-08 16:47:27 1397

原创 【CSAPP】-linklab实验

通过此实验,我掌握了符号解析、符号定义分类 、静态链接解析过程、符号表条目、重定位,还有的是关于地址的计算。基于ELF文件格式和程序链接过程的理解,修改给定二进制可重定位目标文件的数据内容、机器指令等部分。实验过程中,我有遇到了bug,但通过了查询资料(书都要翻烂了)、上百度搜问,最后自己独立解决了bug。通过完成此次实验,不仅收获了很多知识,而且还锻炼了我的动手能力。解决了问题,完成了实验,感觉收获满满的,也有一定的成就感。

2024-07-04 14:30:44 676

原创 【CSAPP】-attacklab实验

通过这次实验,不仅强化了我对机器级表示、汇编语言、调试器和逆向工程等基础知识的理解,而且通过实践,我深入了解了栈溢出攻击的基本原理和应对策略。我深刻理解了栈溢出攻击的基本原理和实施过程。我明白了为什么某些特定的输入会导致程序崩溃或执行非预期的代码。同时,我也学会了如何利用调试器和逆向工程工具来分析程序的执行流程,从而更好地理解和防御这种攻击。学会了如何利用栈帧的信息进行攻击,如修改返回地址、设置全局变量等,以达到控制程序执行流程的目的。

2024-07-02 14:18:16 702

原创 【CSAPP】-binarybomb实验

通过这次实验,我初步了解了可以通过反汇编指令获得反汇编代码。在本次拆弹实验,对于汇编代码的查看可以先找到炸弹语句,反推出避免爆炸条件。可以根据函数名初步确定函数功能,再到具体代码进行详细分析。根据输入函数的格式可以初步确定思路内容方向。由跳转表语句或者数组语句可确定相关结构方向。内存数据可以通过gdb查看。Gdb还可查看跳转表,数组,链表等相关结构。可灵活运用gdb的断点调试功能确定猜测以及函数功能。了解了汇编代码在实际一个小工程的运行流程。进一步加深了相关知识点的理解。

2024-07-01 15:19:12 674

原创 【CSAPP】-datalab实验

在实验过程中,我们首先学习了整数和浮点数的二进制编码表示,了解了如何将十进制数转换为二进制数以及如何在计算机中存储和表示整数和浮点数。我们还学习了如何使用位操作来对二进制数进行操作,例如按位与、按位或、按位异或等。这些操作在计算机底层原理中非常重要,因为它们可以让我们更深入地理解计算机如何处理数据。我们通过实现一组给定功能的函数来加深对数据二进制编码表示的了解。这些函数包括加减乘除、位移运算、位操作等。

2024-06-28 15:15:52 828

原创 [Linux]--关于进程控制

也就是说,父子进程运行是互不打扰的,这是进程的独立性,当试图修改的时候,系统就会在其他的地方给要修改的进程开一块空间,复制原来的进程代码和数据,然后继续运行,(有一个点需要注意,我们查看地址的时候,父子进程是指向同一块空间的,写时拷贝只在进程运行时生效,结束后这块开辟的空间也会随之销毁)这里的话我们还是用上面那个例子给大家试着理解,上一次月考有强哥给你补习之后,你感觉如虎添翼,试卷写起来嘎嘎丝滑...ok,现在班里要考数据结构了,我们作为一个计算机小白对吧,一有事就会想抱着大腿,避免被大风刮跑。

2024-04-16 21:06:07 835

原创 [linux]--关于进程概念(下)

我们上一篇讲了僵尸进程,知道如果子进程退出没有给到父进程返回码,子进程就会被系统维护,一直处于僵尸状态Z,那么,如果是我们的父进程提前退出了而不是休眠,子进程再退出,陷入Z状态,有没有处理方案呢?

2024-03-21 21:48:11 951

原创 [linux]--关于进程概念(上)

计算机管理硬件 1. 描述起来,用struct结构体 2. 组织起来,用链表或其他高效的数据结构也就是先描述再组织。

2024-03-19 22:15:19 961

原创 [c++]模板

类模板名// 类内成员定义// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public :, _size(0){}~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表if(_pData)一般不建议在类外定义,有时会报错,在类里面定义是最好的。

2024-03-18 15:15:55 1637

原创 [c++]内存管理

/////////////////////////////////////////////////////// // 程序退出后,在输出窗口中可以检测到泄漏了多少字节,但是没有具体的位置 Detected memory leaks!p2其实要看情况释放,我们这里p3是p2的延续,我们申请的空间小,所以不需要释放,因为p3释放的时候p2就被一起释放了,如果我们p3realloc的空间比较大,需要异地扩容时,p2也会被拷贝到新的地址去,也是不需要我们去释放的,p3会把p2一块释放掉。ps: 这个理想状态。

2024-03-18 12:03:08 1621

原创 Linux开发工具-vim-gcc-gdb指令及使用

三种模式 正常模式 插入模式 底行模式我们一共有12种总模式,大家有兴趣的话可以自己研究一下vim操作 打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。我们会以上这些常用的基本也算入门了的。

2024-03-07 17:55:27 1689 1

原创 【Linux】基本指令与基本权限

上一篇我们装了xshell连接了云服务器或者配置好了ubuntu,工具和环境搭载好了,我们就可以进入linux的学习了,linux和windows本质上是一样的,都是用户使用的操作系统。使计算机更好用!这是操作系统的根本要义!目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

2024-02-06 23:28:05 830 1

原创 【linux】关于linux的由来 及 环境搭载

本章开始以后我们就正式进入linux的学习了,这里我们先讲讲linux的背景,之后搭载linux学习需要的环境。你可能要问Linux从哪里来?它是怎么发展的?在这里简要介绍Linux的发展史。要说 Linux,还得从UNIX说起。

2024-02-04 22:56:29 773 1

原创 【C++】类和对象--日期类的实现

我们前面学习了类和对象的6大默认函数,以及一些相关的知识点,现在我们来实现一下日期类,巩固一下成果。

2024-02-03 20:32:32 893 1

原创 【C++】类和对象(补充篇)

我们前面学习了关于类和对象的6个默认成员函数,知道了一个空类中有构造函数和析构函数,通过对对象初始化和对象中进行资源清理,达到初始化和销毁的作用。我们再对一些小的点进行补充,看看类和对象的一些细节。

2024-02-03 12:50:43 866 1

原创 【C++】类和对象---默认函数

这里补充一下前面没讲到一个小点,关于c和c++在概念上的区别,一个是面向过程,一个是面向对象,c++是在c的基础上进行补充,变得更加安全,高效。C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完 成。我们前面学习了关于类和对象的一些基本概念,类其实就可以看作结构体的升级,以及多了实例化等知识点。我们知道,一个类里面可以是空的,什么都没有,就比如下面这样是没问题的。

2024-02-02 23:02:41 945 1

原创 [C++】类和对象(预习篇)

前面浅浅喝了一小口汤,我们现在就再认识一下c++在编写程序时一些和c语言不同的地方,c++是升级版,包含c的同时又做了什么比较好的优化呢?

2024-01-26 17:48:31 776 1

原创 【C++】收拾行囊->走进C++的世界!

我们前面浅浅接触了一下C语言的常用的一些知识,知道了C是一个面对过程的编程语言,那么一个结构化模块化的语言处理一些较小的业务场景是没有问题的,但随着科技的不断发展,业务也随之复杂化,C语言就有点不太满足复杂业务需要了,比如高度的抽象和建模等业务场景。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。

2024-01-23 01:12:50 818 1

原创 数据结构-关于常用排序方法的理解

那么当这个值是2的时候,我们给的区间有2个值,这时候我们创建一个临时数组,在一个值时就将排好的值拷贝回去,第二次的时候,还是比较两个区间的第一个值,哪个小就放到临时数组里,然后这个区间和临时数组都++,因为已经比较和存值了。这里的话,比如说gap是3,就是我们分了三组,假设我们这里取 数:9,1,2,5,7,4,8,6,3,5 那么第一组就是9,5,8,5,第二组是1,7,6.第三组是2,4,3.因为我们这里是10个数嘛,然后分了三组,第二次的话进入循环再除3,就是1,就直接插入排序了。

2024-01-19 21:10:40 924 1

原创 数据结构-二叉树(深度剖析)

二叉树,堆实现,链式结构

2023-12-19 09:59:03 638 1

原创 数据结构-栈和队列的实现

栈,队列

2023-11-20 23:17:40 27 1

原创 数据结构-带头双向循环链表

带头双向循环链表相比单链表,结构上更加完善,插入删除也更加方便。在理解了单链表的结构后,再来理解带头双向循环链表,就会变得简单很多,学习之路亦是如此,一步一脚印!写的不好的地方欢迎多多指正批评,道阻且长,加油吧!

2023-11-20 09:32:12 19 1

原创 数据结构-关于链表

一、线性表之链表前文有提到线性表是数据结构中的主要存储方式,http://t.csdnimg.cn/60r08除了顺序表,栈和队列这些常见的存储方式以外,链表同时也被广泛应用。与顺序表不同的是,链表没有内存不够的说法,每当插入一个数据,链表就会多一个地址,也可以认为链表就是一个个数据的地址的串联。二、链表的逻辑及实现链表在数据结构是以结构体的形式实现的,结构体包含一个数据和下一个数据的地址,使得数据能够串联起来形成链,这就是链表。在链表中有带头链表,双向链表,双向循环链表,单循环

2023-10-28 16:25:22 32 1

原创 数据结构-关于顺序表

顺序表

2023-10-26 17:30:15 37 1

原创 【C生万物】游戏实现——“扫雷”

扫雷,c语言,游戏,c生万物

2022-10-26 11:54:05 729 1

原创 【C生万物】游戏实现——“三子棋”

三子棋,游戏实现,c语言

2022-10-26 10:36:48 741

原创 【C生萬物】零基础选手初窺c語言(3)

指针,结构体,实际应用

2022-07-23 22:46:58 518 3

原创 【C生萬物】零基础选手初窺c語言(2)

【C生萬物】零基础选手初窺c語言

2022-07-20 00:37:30 580 4

原创 【C生萬物】零基础选手初窺c語言

零基础,c语言

2022-07-18 01:33:25 301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除