- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 c++对象模型之默认构造函数
1.默认构造函数定义: 没有显式提供初始化式时调用的构造函数形式: 没有返回值,没有参数注意: 默认构造函数可以自己实现,也可以由编译器生成,但编译器只会在必要的时候才会帮程序员合成默认构造函数两个误解:1.任何class如果没有定义default constructor,就会被合成出一个来2.编译器合成出来的default constructor 会显示设定class内每一个data member的默认值针对第一个误解我们需要了解default constructor的合成时机针对第二个误
2022-04-21 14:38:48
967
原创 滴水三期_2_将FIleBuffer转换为ImageBuffer
/* 功能:将FileBuffer转换为ImageBuffer 参数:指向FileBuffer的指针,指向ImageBuffer指针的指针(想要修改ImageBuffer指针的指向) 返回值:转换的ImageBuffer的字节数*/DWORD FileBufferToImageBuffer(LPVOID IN FileBuffer,LPVOID* OUT ImageBuffer){ PIMAGE_DOS_HEADER pFileBufferDosHeader = NULL; PIMAGE_.
2022-04-12 22:14:32
300
原创 滴水三期_1_读可执行文件进内存
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<windows.h>DWORD ReadPEToFileBuffer( const char* IN file_name, LPVOID* OUT FileBuffer){ FILE* pFile = NULL; //指向文件的指针 DWORD sizeOfFile=0; //文件大小,作为返回值 p
2022-04-12 21:51:46
104
原创 侯捷视频笔记2
10.array new 一定要搭配 array deletechar* p = new char[]----->delete[] pdelete p:只调用一次p指向的内存块的析构函数,如果p指向的是数组,则只调用了第一个对象的析构函数,其他的析构函数并没被销毁,造成内存泄漏对于没有堆区变量的对象,因为构造函数不需要delete,因此可以用delete p,但不建议这样用.11.cout输出字符串只需要指针即可,不需要解引用char* str=“hello”;cout<<st
2021-10-04 23:16:38
81
原创 侯捷视频笔记(部分)
侯捷视频笔记(部分)1.如何判断形参是否加const如果不对形参修改就加const2.如何判断形参是否加引用尽量都加引用,对于改变形参原本值的函数一定要加引用(特别注意指针形参)3.返回值是否加引用如果返回的不是局部变量,返回值都加引用4.加引用的目的提高传输速率,也就提高了程序的运行速度5.字符串有两种表示方式:1.字符指针(不用提前指定大小) 2.字符数组(需要指定大小)6.new调用顺序:new:先分配 memory, 再調用 ctor(出生后的第一句话)7.delete调用顺
2021-10-04 23:03:17
151
原创 数组名与内存
在思考数组名时忽然有些疑惑,经验证和查证后,总结为:数组名是一个符号,表示数组在内存中的起始位置,类似于goto语句标签或宏定义,但也有所不同,goto语句标签就是一个标签,没有地址,不占内存。数组名不占空间,不是指针常量,更不是变量。数组名直接输出则为数组首元素的地址,解引用后不发生变化,但意义不同,对数组名解引用后实际上得到的是整个数组的地址。上图中,数组首地址为6356720,直接用...
2020-05-01 17:38:41
1868
原创 地址总线与寻址能力
地址总线与寻址能力我在自学到汇编地址总线的时候,发现搞不懂寻址能力是什么,是cpu一次最多寻找到的地址数量,还是在内存中开辟的有编号地址最大数量最终在千辛万苦的搜索后总结为:寻址能力是cpu最多可以在内存中寻找到的地址数量,更多的内存cpu无法访问。内存的大小可以小于寻址能力,但不能大于它。地址总线的宽度决定了cpu寻址的上限即寻址能力(例如2根地址线有四种组合,00,01,10,11于是...
2020-03-16 22:24:50
5437
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人