既然“指针”的使用者一不小心就可能导致内存泄漏,那么我们如何能够使得指针的使用变得更安全呢?从C++面向对象的角度分析,我们有没有可能将“指针”封装起来,使得用户不直接接触指针,而使用一个封装后的对象来替代指针的操作呢?
答案是显然的,“智能指针”(smart pointer)正解决这类问题,尤其是在防止内存泄漏方面做得非常突出。C++标准库std中提供了一种“智能指针类”名为"...
分类:
编程语言 时间:
2014-06-15 15:04:11
阅读次数:
352
对于C和C++程序员来说,一定不会对NULL感到陌生。但是C和C++中的NULL却不等价。NULL表示指针不指向任何对象。
NULL是一个宏定义
在C中将NULL定义为void*指针值为0
#define NULL (void*)0
在C++中,NULL被定义为常数0
#ifndef NULL
#ifdef __cplusplus
#define NULL 0...
分类:
编程语言 时间:
2014-06-15 10:22:49
阅读次数:
359
C语言中,一个函数是不能直接返回一个集合类型的,但是我们可以返回一个数组地址,需要注意的是C语言不能返回局部变量(local variable)的地址,所以我们要在函数中将其定义为静态变量(static variable)。#includeint *get_arr();int main(){ ...
分类:
其他好文 时间:
2014-06-15 09:41:48
阅读次数:
171
原文出处:http://blog.csdn.net/daiyutage/article/details/8604720 C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符...
分类:
其他好文 时间:
2014-06-14 17:18:32
阅读次数:
322
ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数...
分类:
其他好文 时间:
2014-06-14 16:43:28
阅读次数:
177
当某线程触发GC时,任何线程不能再访问任何的对象.在GC执行时,可能会修改对象的地址.GC执行时,大多使用劫持法,将所有的线程挂起.对于含有Loop,且Loop内不再调用其它方法时.会生成一个编译时表.当线程的指针指令执行到该处时,会认为到达了一个安全点,线程可以被挂起.对于其它方法,GC会劫持线程...
分类:
Web程序 时间:
2014-06-14 15:57:14
阅读次数:
218
C语言指针是一个特殊的变量,其里面储存的地址。学会使用指针讲助你在编程之路行走的更快。...
分类:
编程语言 时间:
2014-06-14 15:00:48
阅读次数:
266
Cocos2d-x游戏开发之lua工程创建,
lua作为一种开源动态解释型语言,可以实现动态游戏更新,避免c++出现的野指针错误。...
分类:
其他好文 时间:
2014-06-14 14:49:26
阅读次数:
275
1. trie树,又名字典树,顾名思义,它是可以用来作字符串查找的数据结构,它的查找效率比散列表还要高。
trie树的建树:
比如有字符串”ab” ,“adb”,“adc” 可以建立字典树如图:
树的根节点head不存储信息,它有26个next指针,分别对应着字符a,b,c等。插入字符串ab时,next[‘a’-‘a’]即next[0]为空,这...
分类:
其他好文 时间:
2014-06-14 14:25:50
阅读次数:
406