类野指针问题,解决了散分了!
#include <cstdlib>
#include <iostream>
using namespace std;
class wwx
{
public:
int m_c;
int m_d;
wwx(){m_c = m_d = 123;}
void foo()
{
//m_c = 1;
//m_d = 2;
cout<<"this is a testing! m_c = "<<m_c<<endl;
cout<<"m_d = "<<m_d<<endl;
}
};
int main(int argc, char *argv[])
{
//wwx *p = new wwx();
//delete p;
//p->foo();
int addr[2] = {8000,8100};
//int addr2 = 8001;
wwx *q = ((wwx*)&addr); //把addr[0]的地址赋给了*q,m_c=8000,m_d=8100
cout<<"&addr:"<<&addr<<"q:"<<q<<endl;
((wwx*)&addr)->foo();
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
class wwx
{
public:
int m_c;
int m_d;
wwx(){m_c = m_d = 123;}
void foo()
{
//m_c = 1;
//m_d = 2;
cout<<"this is a testing! m_c = "<<m_c<<endl;
cout<<"m_d = "<<m_d<<endl;
}
};
int main(int argc, char *argv[])
{
//wwx *p = new wwx();
//delete p;
//p->foo();
int addr[2] = {8000,8100};
//int addr2 = 8001;
wwx *q = ((wwx*)&addr); //把addr[0]的地址赋给了*q,m_c=8000,m_d=8100
cout<<"&addr:"<<&addr<<"q:"<<q<<endl;
((wwx*)&addr)->foo();
system("PAUSE");
return EXIT_SUCCESS;
}
...全文
相关推荐
c++野指针的原理以及避免方法
1.定义 指向非法的内存地址指针叫作野指针(Wild Pointer),也叫悬挂指针(Dangling Pointer),意为无法正常使用的指针。 2.出现野指针的常见情形 2.1使用未初始化的指针 出现野指针最典型的情形就是在定义指针变量之后没有对它进行初始化,如下面的程序。 #include using namespace std; int main() { int* p; cout<<*p<<endl; //编译通过,运行时出错 } 2.2指针所指的对象已经消亡 指针指向某个对象之后,当这个对象的生命周期已经结束,对象已经消亡后,仍使用指针访问该对象,将
野指针问题
野指针问题
NULL指针、零指针、野指针定义及区别
本文主要讲了NULL指针、零指针、野指针定义及区别。
C野指针处理
C野指针的出现,以及详细的处理办法,很好的文档哦!
C++在函数中给类的指针变量赋值问题
在函数中给C++指针变量赋值,分析了指针变量的特性,并追踪了给指针变量赋值的过程。


非技术类

