- 博客(5)
- 收藏
- 关注
原创 模拟堆管理
没用二叉树,因为不会,,,可能以后会改改 纯c编写,没有用外部库函数 放代码 main.cpp #define _CRT_SERURE_NO_WARNINGS #include <iostream> #include "mystring.h" `int main() { char str[5000]{};//存放大数组 char* strptr[100]{};//记录每个字符串的头 int ptrcount{};//计数器 char* position{};//
2021-04-22 00:18:59
162
原创 windows编程-第一个窗口程序
#include <windows.h> #include <tchar.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox(NULL,_T("hello"),_T("第一个窗口程序"), MB_OK); return 0; } 这是用已经封装好的messagebox来快速创建一个窗口 下面我们
2020-11-25 20:58:20
338
原创 理解复杂声明
理解复杂声明可用的“右左法则”:从变量名看起,先往右,再往左,碰到一个圆括号就调转阅读的方向;括号内分析完就跳出括号,还是按先右后左的顺序,如此循环,直到整个声明分析完。举例: int (*func)(int *p); 首先找到变量名func,外面有一对圆括号,而且左边是一个*号,这说明func是一个指针;然后跳出这个圆括号,先看右边,又遇到圆括号,这说明(func)是一个函数,所以func是一个指向这类函数的指针,即函数指针,这类函数具有int类型的形参,返回值类型是int。 int (*func[5]
2020-11-24 13:55:27
171
原创 C++—this指针学习笔记
C++—this指针学习笔记 我们先做一个关于结构体传参的实验 struct person { int a; int b; }; void plus(person a) { } int main() { person a{}; plus(a); return 0; } 观察反汇编 发现仅仅是将对象a拷贝了一份发送到plus函数中 那么,如果结构体的成员更多呢 修改部分代码 struct person { int a; int b; int c; }; 观察反汇编 先提升堆栈,然后依
2020-11-20 10:53:28
190
原创 pe文件结构笔记
pe文件结构笔记 可执行文件(exe)指的是操作系统可以加载执行的文件,即程序在什么平台上运行就要遵守什么平台的文件格式。 Windows平台:PE(Portable Executable)文件结构 Linux平台:ELF( Executable and Linking Format)文件结构 如何识别pe文件(pe指纹) 1观察前两个字节,是否为MZ 2查找地址0000003Ch的值,这个值是多少就查找相应的内存地址,如当前E8就查找000000E8h 3观察从e8开始后两个字节,是否为PE 满足以上条
2020-11-20 09:21:54
301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅