C++标准规定:delete空指针是合法的,没有副作用. 所以我们在Delete指针后赋值为NULL或0是个好习惯.对一个非空指针delete后,若没有赋NULL,若再次delete的话 有可能出现问题.如下代码: 可以看出delete是释放指针指向的内存,并不是指针本身所占有的内存.所以delete后,指针的还是指向那块区域,并 未清0,所以如果下次用到,就会发生xxx空间不能访问的异常. 以后delete后要赋值为空…
删除后需要赋NULL: 1.当在一个类里的时候,删除类的某个成员对象,需要给它赋NULL,以防其他地方使用这个成员的时候,不知道这个成员是否存在 eg: ref1::ref1() { tPint = ); if (tPint) { delete tPint; tPint = NULL; } if (tPint) cout << *tPint << endl; else cout << "no exist" << endl; } 删除后不需…
之前发过一次微博,今天又遇到这个问题,并且再次犯错,于是决定再加深一下. 就举php.net里的一个例子吧 $a = array('abe','ben','cam'); foreach ($a as $k=>&$n){ $n = strtoupper($n); } print_r($a); foreach ($a as $k=>$n){ // notice NO reference here! echo "$n\n"; } print_r($a); 输出的结果是:…
看下面例子: #include "stdafx.h" #include <iostream> class A {  //父类 public: void  f()   //普通函数 { std::cout<<"A"<<std::endl; } void virtual vf()   //虚函数 { std::cout<<"virtual-A"<<std::endl;  } }; class…
删除表格的全部数据: DELETE FROM [Name] 当在sqlite中删除了大量数据后,数据库文件的大小还是那样,没有变.原因是:从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据.磁盘空间并没有丢失.但是也不向操作系统返回磁盘空间. 解决方法有以下两种:1,在数据删除后,手动执行SQL"VACUUM"命令,执行方式很简单.推荐使用.2,在数据库文件建成中,将auto_vacuum设置成“1”.但是第二个方法同样有缺点,只会从数据…
最的做的项目中要有到sqlite数据存储,写了测试程序进行测试,存入300万条记录,占用flash大小为 86.1M,当把表中的记录全部删除后发后数据库文件大小依然是 86.1M: 原因是:sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢失,但也不向操作系统返回磁盘空间,这就导致删除数据乃至清空整个数据库后,数据文件大小还是没有任何变化,还是很大 解决方法:两种 一,在数据删除…
原文地址:http://blog.csdn.net/yangchun1213/article/details/7656146   说了这么多,没进主题,我的主题是给Sqlite在删除数据后擦屁股. 大家或许发现了,当你在sqlite中删除了大量数据后,数据库文件的大小还是那样,没有变. 就用我的项目来说,3M的数据删除后,sqlite的.db文件依然是3M,而我要的结果实际上只有35K,在压缩一下也就10几K了.为什么会出现这个问题,SqlCe的.sdf文件是即删即减的. 原因是: 当你从Sql…
永久删除文件后找回 1. 已经添加到本地库的文件 使用 reset 命令回退到未删除的历史记录即可 2.添加到缓存区,没有提交到本地库的文件找回 git reset --hard HEAD 命令即可找回 如删除了一个文件并add添加到了缓存区,而没有 commit 提交到本地库,则可以使用上面命令恢复 3. 总结: 前提:删除前,文件存在时的状态提交到了本地库(文件已经提交过) 操作:git reset --hard [指针] 删除操作已提交到本地库:指针位置指向历史记录 删除操作尚未提交到本地…
1.错误现象 Linux 磁盘空间总是报警,查到到大文件,删除之后,df看到磁盘空间并没有释放. 用du -sh ./* | sort -nr (查看当前目录下文件的大小)通过查找了下发现文件被mysql 的zabbix库占用了 zabbix 已经迁移可以删除 rm 删除之后df查看 发现磁盘空间并没有得到释放 执行 lsof | grep deleted发现有大量刚刚删除文件的进程存在 kill掉进程(或者重启进程) OK 2.解决思路 一般说来不会出现删除文件后空间不释放的情况,但是也存在例…
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{...int i;..}a, *p int (*p)(int,int); int add(int a,int b) int **p1; int *p2; int *p3[5]; 赋值方式 p=&a; -- p=a; p=&a p=add; p1=&p2; p1=&p3; 解引用 *…