三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib. ...
分类:
其他好文 时间:
2016-09-07 10:34:30
阅读次数:
160
shared_ptr虽然方便,但是它有着一个致命的缺陷就是循环引用问题,因为shared_ptr本身并没有能力解决这个问题,所以我们又引入了弱指针weak_ptr来辅助shared_ptr解决这个问题。那么循环引用又是什么场景?举个栗子:假设现在我们要创建一个双向整形链表,但是这个链表的指针域..
分类:
其他好文 时间:
2016-09-06 23:30:48
阅读次数:
174
C++11目前已经引入了unique_ptr, shared_ptr, weak_ptr等智能指针以及相关的模板类enable_shared_from_this等。被广泛使用的是shared_ptr,...
分类:
编程语言 时间:
2016-09-06 17:00:25
阅读次数:
269
1,offsetofclass获取基类相对于子类的偏移位置。#define _ATL_PACKING 8#define offsetofclass(base, derived) ((DWORD_PTR)(static_cast((derived*)_ATL_PACKING))-_ATL_PACKIN... ...
分类:
其他好文 时间:
2016-09-05 20:45:23
阅读次数:
345
智能指针——shared_ptr 为了更容易地使用动态内存,新的标准提供了智能指针来管理动态对象。智能指针的行为类似常规指针,重要的区别是它负责自动释放指向的对象。 智能指针的使用方式与普通指针类似。解引用一个智能指针返回它指向的对象。 最安全的分配和使用动态内存的方法是调用一个名为make_sha ...
分类:
其他好文 时间:
2016-09-04 11:39:10
阅读次数:
200
1、指针的初始化 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。 例如: int a = 25; int *ptr = &a; int b[10 ...
分类:
编程语言 时间:
2016-09-04 11:39:07
阅读次数:
228
最近弄Android c/c++方面的逆向,发现c++的类,stl模板,在逆向的时候相比c语言都带来了不小的困难。 今天自己写了个小程序,然后逆向分析了一下 定义一个vector,然后添加数据。 ida反汇编如下:(已添加注释) 分析如下: 将栈的vector_ptr处的地址复制给R6 将sp+4的 ...
分类:
编程语言 时间:
2016-09-03 22:30:33
阅读次数:
511
方法1: 方法2: 方法3: 新建一个对话框工程,如工程名为:XXX 之后在解决方案里找到:XXX.cpp打开。 找到你的InitInstance()函数。 在里面你会找到CXXXDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal( ...
分类:
编程语言 时间:
2016-08-31 13:40:47
阅读次数:
145
常见DNS记录SOA:域权威开始NS:权威域名服务器A:主机地址CNAME:别名对应的正规名称MX:邮件传递服务器PTR:域名指针(用于反向DNS)查询过程浏览器缓存->hosts->LDNS->LDNS缓存->ISP->ISP缓存->根服务器递归/迭代查询DNS与LDNS之间通常是迭代查询,LDNS就成..
分类:
其他好文 时间:
2016-08-27 23:53:27
阅读次数:
735
在单位写代码没法用c++11,为了方便写代码,今天趁着空闲时间写了个unique_ptr的简单实现 测试代码 [NEWOBJ][Obj] this =00000000002C7D20 nMyMem= 100 [DELOBJ][~Obj] this =00000000002C7D20 ...
分类:
编程语言 时间:
2016-08-25 21:06:23
阅读次数:
178