码迷,mamicode.com
首页 >  
搜索关键字:c++ 指针    ( 27241个结果
GLUT的一个简洁OO封装
Member function 如何作为Callback? 这里其实是两个问题。 第一个问题,member function的函数签名上有this指针,不能直接传给glut*Func作为callback。 member function不行,很自然的想到static function。 第二个问题,static function如何能够调用member function,且与之关联的对象(this指针)能够在运行时期(或者用户程序)决定? 其一,static function调用member functi...
分类:其他好文   时间:2014-06-09 23:27:43    阅读次数:313
循环链表的实现与操作(C语言实现)
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。 循环链表的操作 1,循环链表的新操作 2, 获取当前游标指向的数据元素 3, 将游标重置指向链表中的第一个数据元素 4,将游标移动指向到链表中的下一个数据元素 5,直接指定删除链表中的某个数据元素 CircleListNode* CircleList_DeleteNode(CircleList* list, CircleListNode* node); CircleListNode* Ci...
分类:编程语言   时间:2014-06-08 17:04:24    阅读次数:242
VC中CDC与HDC的区别以及二者之间的转换
CDC是MFC的DC的一个类  HDC是DC的句柄,API中的一个类似指针的数据类型.  MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的好的习惯.  CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派生类).  CDC等设备上下分类,都含有一个类的成员变量:m_nHdc;即...
分类:其他好文   时间:2014-06-08 10:32:40    阅读次数:183
栈的实现:链式栈
栈的链式存储,即链式栈。它相比于顺序栈, 优点: 插入、删除灵活 (不必移动节点,只要改变节点中的指针指向即可)。 逻辑上相邻的节点物理上不必相邻。 缺点: 比顺序存储结构的存储密度小 (每个节点都由值域和链域组成,使用指针来表现前后节点的逻辑关系)。 查找节点时链式存储要比顺序存储慢。 这些优点、缺点体现了顺序存储和链式存储的相区别之处。 看图就很形象了:...
分类:其他好文   时间:2014-06-08 08:21:23    阅读次数:251
C++中volatile关键字的分析
volatile关键字表明,即使程序代码没有对内存单元进行修改,其值也可能发生变化。例如,可以将一个指针指向某个硬件位置,其中包含了来自串行端口的时间或信息。在这种情况下,硬件(而不是程序)可能修改其中的内容。或者两个程序可能互相影响,共享数据。该关键字的作用是为了改善编译器的优化能力。例如,假设编译器发现,程序在几条语句中两次使用了某个变量的值,则编译器可能不是让程序查找这个值两次,而是将这个值...
分类:编程语言   时间:2014-06-08 05:34:29    阅读次数:278
玩转VC++实现CallBack
题目有点大,其实本文只是要DEMO一下用函数指针在VC++实现回调。 一、函数指针 那么什么是函数指针呢?说白了就是指向函数的指针,它是一个变量。 通常,函数会被编译为一段二进制机器码。每个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。 可以把函数的这个首地址(入口地址)赋予一个指针变量,使该指针变量指向该函数。 那么就可以通过该指针变量就可以找到并且调用这个函数了...
分类:编程语言   时间:2014-06-08 03:53:46    阅读次数:369
常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 举例1
在代码维护中,发现一个指针的初始值是0,在没有走到正常分支处该指针是不会被赋值的,而在软件的启动阶段,恰恰该指针不会走到正常分支,所以在后面使用该指针的时候,并没有判断指针值是否为空,所以CPU使用空指针访问,就会出现问题,并在L1内存控制器中被检测到,通过event 122=0x7A上报。 根据下图CPU通过空指针访问0x48的地址,是因为空指针指向一个结构体,在用指针去访问结构体中某个变量,...
分类:其他好文   时间:2014-06-08 03:46:13    阅读次数:217
关于Netfilter NF_HOOK宏的outdev参数bug
1.首先指出,NF_HOOK系列宏的outdev参数的传递方式(直接传递一个net_device结构体指针)是不正确的正确的方式要么是不传递,要么是传递指针的地址,即地址的地址。2.接下来指出,仅仅传递一个地址为何不对因为在该HOOK点可能存在多个HOOK函数,每一个函数都有可能改变skb的路由,即调用reroute,比如NAT,比如IP Mark等,这样后续的HOOK函数看到的依然是旧的outd...
分类:Web程序   时间:2014-06-08 03:27:38    阅读次数:258
双向链表的实现与操作(C语言实现)
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 单链表的局限 1,单链表的结点都只有一个指向下一个结点的指针 2,单链表的数据元素无法直接访问其前驱元素 3,逆序访问单链表中的元素是极其耗时的操作...
分类:编程语言   时间:2014-06-08 02:16:06    阅读次数:352
[LeetCode] Two Sum [17]
题目 :Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2 解题思路: 给出一个数组合一个数,如果两个数的和等于所给的数,求出该两个数所在数组中的位置。 这个题也挺常见的,就是两个指针,从前后两个方向扫描。但是本题有以下几个需要的点: 1. 所给数组不是有序的; 2. 返回的下标是从1开始的,并且是原来无序数组中的下标; 3. 输入数组中可能含有重复的元素。 好了,把以上三点想到的话,做这个题应该不会有啥问题。 具体方法:把原...
分类:其他好文   时间:2014-06-08 02:14:06    阅读次数:250
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!