自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSAPP attacklab

attacklab文章目录attacklabPhase 1Phase 2Phase 3Phase 4Phase 5Phase 1cat exploit.txt | ./hex2raw | ./ctarget -q: Don’t send results to the grading servergdb ctarget(gdb) set args -q GDB调试的程序指定运行时参数(gdb) run -q思路:查看getbuf栈帧(gdb)b getb

2022-03-06 11:03:57 195

原创 笔记九移动语义

移动语义文章目录移动语义左值,右值右值引用移动构造函数高性能置换左值,右值判别:一个典型的判别方法:赋值表达式中等号左边的就是”左值“,等号右边的就是”右值“可以取地址的,有名字的就是左值,反之不可以取地址的,没名字的就是右值右值的例子:非引用返回的函数返回的临时变量值1+3产生的临时变量值true、'c’不跟对象关联的字面值类型转换函数的返回值,lambda表达式的值将亡值:返回T&&的的函数返回值,std:move的返回值,转换为T&&

2021-06-10 23:13:58 75

原创 笔记八树

AVL树,红黑树,B+树,B树文章目录AVL树,红黑树,B+树,B树AVL树红黑树B/B+树AVL树平衡二叉搜索树的鼻祖,平衡度最好,左右高度差在[0,-1,1]每个节点保存平衡值(高度差)查询复杂度O(logn)红黑树工业界主要使用的平衡二叉搜索树,平衡度没有AVL好,最坏情况根到叶子最长是最短的两倍查询复杂度O(logn)std::map,std::setB/B+树N叉平衡树,每项数据由key-data组成节点结构:ptr | key-data | ptr | k

2021-05-11 18:04:05 54

原创 笔记七HTTPS

HTTP与HTTPS文章目录HTTP与HTTPSHTTPHTTPS密钥对称加密(私钥加密)非对称加密(公钥加密)HTTPS通信过程HTTP基于请求与响应,无状态(同一个客户第二次访问服务器上同一个页面时,服务器的响应与第一次相同),应用层协议基于TCP传输使用明文HTTPSHTTP协议 + SSL/TLS协议,SSL/TLS将数据加密,HTTP传输SSL: Secure Sockets Layer安全套接层协议TLS: Transport Layer Security传输

2021-05-11 09:25:12 74

原创 笔记六ARP协议

ARP协议文章目录ARP协议IP地址与硬件地址ARP协议ARP攻击ARP攻击防护IP地址与硬件地址物理地址(MAC地址)是数据链路层以及物理层使用的地址IP地址是网络层及以上使用的地址,是逻辑地址尽管互联在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网屏蔽了下层这些很复杂的细节,在网络层以上,使用统一的抽象的IP地址进行通信ARP协议作用:已知IP地址找到硬件地址每台主机都有一个ARP高速缓存,里面有本局域网上各主机和路由器的IP地址-硬件地址的映射表主机A向本局域

2021-05-10 16:30:52 107

原创 笔记五进程与线程

进程与线程文章目录进程与线程进程线程区别进程由程序段、相关的数据段和PCB构成进程实体(进程)进程是一个可拥有资源的独立单位,进程拥有的资源从操作系统角度看:存放程序代码与数据的磁盘,内存资源(内存地址空间),已打开的文件,信号量(进程间同步),共享内存(进程间通信)等进程创建时系统分配其所必须的内存空间,IO设备,建立相应的PCB线程线程作为调度与分派的基本单位,线程是能独立运行的基本单位线程本身并不拥有资源,只拥有一点必不可少的保证独立运行的资源:用于线程控制的TCB,程序计

2021-05-10 16:29:52 56

原创 笔记四智能指针

智能指针文章目录智能指针shared_ptr()简单实现shared_ptr()简单实现template<typename T>class shared_ptr{public: // 普通构造函数,用一个T指针构造一个智能指针,为refcount申请空间,并将引用计数置1 shared_ptr(const T* ptr) { p = ptr; refcount = new long; *refcount = 1;

2021-05-02 15:37:59 69

原创 笔记三单一类设计

类设计文章目录类设计两种类new与array new(delete)两种类对于类中没有指针的类,注意如下数据部分放到private声明中传参与返回值:参数尽量传递引用(效率高,值传递还需拷贝入栈),考虑是否加const不改变数据的成员函数要加const(如对私有数据的访问接口)构造函数初始化数据用初始化列表实践:实现complex类#ifndef COMPLEX_H#define COMPLEX_H#include <iostream>class myComple

2021-04-25 17:46:24 136

原创 笔记二虚指针,虚表

虚指针,虚表文章目录虚指针,虚表虚机制模板方法模式(Template Method)虚机制C++编译器遇到函数调用静态绑定,编译为call 0x*****(直接转到函数所在地址)动态绑定通过指针p调用基类类型的指针被赋子类指针值(可以向上转型)调用的函数是虚函数通过虚机制 编译为 (*(p->vptr)[n])(p) ,通过基类指针p找到对象所在类的虚函数表(p->vptr),在表中找到对应的函数指针([n]n取决于虚函数定义的顺序,第一个为0),通过该函数指针调用

2021-04-22 09:14:51 99

原创 笔记一extern “C“

笔记一extern “C”文章目录笔记一extern "C"由源文件到可执行文件链接规范链接使用__cplusplus由源文件到可执行文件由.c/.cpp源文件编译生成.out可执行文件(如g++编译器),有4个过程预处理 - 处理#include包含的头文件,宏定义#define #ifdef #ifndef···,去注释使用-E让预编译后停止编译过程,生成.ii文件 g++ -E temp.cpp -o temp.ii#include的文件内容全部复制到预编译文件,对宏定义进

2021-04-20 15:28:03 90

空空如也

空空如也

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

TA关注的人

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