写windows程序的一点经验
对于涉及#include <windows.h>的程序一般需要将此头文件置于其他头文件前面;
#include <windows.h>
#include <process.h>
#include <Psapi.h>
良好的编程习惯:类方法定义时先写类名域::再写方法名,避免后续忘记写类名导致编译错误
项目在配置正确的情况下编译失败提示无法打开DLL文件,可查看任务管理器是否有上次运行未关闭的进程,当有进程占用该DLL时编译会有该错误提示,结束对应进程即可
delete指针的一些细节
首先正确使用new/delete的方法是:
T p=new T();
...
delete p;
p=NULL;
delete之后必须给指针赋值为NULL
(1)delete 一次以后,p成了野指针,它作为地址的值还是有效的,还可以访问它以前指向的内存,只不过以前那片内存被重新格式化了;
(2)p不等于NULL,用 if(p) 语句不能判断它指向的内存是否有效(此时它指向的内存无效,p本身有效(本身所指的的地址值还存在));
(3)delete 一次以后,不能再次delete,否则会报错;
(4)delete之后未赋值NULL时,如果误用p指针,仍然可以修改内存的值和从该处取出数值,但此时数据不受保护,该内存空间可能被重新被分配给别的变量;
(5)delete之后未赋值NULL时,如果p指向的空间再次被new函数分配,即使是分配给别的指针,即使分配大小与原来不一样,p又恢复了效力,可以改变内存的值,甚至可以重新被delete,p的作用与新分配的指针一样;
生命就像一条大河
—— 时而宁静,时而疯狂

浙公网安备 33010602011771号