一、指针的大小
二、野指针和空指针
#include
int main(void)
{
int a = 6;
int* p;
p = a;//把a的值赋给指针变量p,p为野指针,这样做不会出现啥问题,但是没什么意义
p = 0x456;//为指针变量p赋值,p为野指针,这样做不会出现啥问题,但是没什么意义
*p = 100;//操作野指针指向未知区域,内存会出问题,报错。
return 0;
}
但是,野指针和有效指针变量保存的都是数值,为了标志此指针变量没有指向任何变量(
C++ 智能指针的模拟实现实例
1.引入
int main()
{
int *p = new int; //裸指针
delete p;
return 0;
}
在上面的代码中定义了一个裸指针p,需要我们手动释放。如果我们一不小心忘记释放这个指针或者在释放这个指针之前,发生一些异常,会造成严重的后果(内存泄露)。而智能指针也致力于解决这种问题,使程序员专注于指针的使用而把内存管理交给智能指针。
普通指针也容易出现指针悬挂问题,当有多个指针指向同一个对象的时候,如果某一个指针d