类野指针问题,解决了散分了!

wangweixing2000 alipay 技术经理  2005-07-14 02:49:51
#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;
}
...全文
129 点赞 收藏 18
写回复
18 条回复
goodboyws 2005年07月14日
jf
回复 点赞
dabears 2005年07月14日
好多星星啊
回复 点赞
dudu妈 2005年07月14日
接分
回复 点赞
long_xing 2005年07月14日
wwx *q = ((wwx*)&addr); //把addr[0]的地址赋给了*q,m_c=8000,m_d=8100
这一句应该如何解释呢?
我认为应该q的初试值为addr的地址,而不是把addr[0]的地址赋给了*q !
回复 点赞
老夏Max 2005年07月14日
接分啊
回复 点赞
teli_eurydice 2005年07月14日
都是星星阿
回复 点赞
handwolf 2005年07月14日
也指针解决了,我还以为是什么问题。

类存储结构的功劳,呵呵

但是要注意对齐!
回复 点赞
AntonlioX 2005年07月14日
up
回复 点赞
StarsWu 2005年07月14日
呵呵,这类问题我们以前也玩过。其实一个类的对象在内存中只有数据部分是新申请的,因此他在内存中所占的空间与他内部的数据成员总空间是一样大。
回复 点赞
allen_zhaozhencn 2005年07月14日
顶一个, 呵呵.
回复 点赞
oyljerry 2005年07月14日
^_^ jf
回复 点赞
jinjazz 2005年07月14日
恭喜




---------------------------------------
该问题已经结贴 ,得分记录: jinjazz(200)、
回复 点赞
oyljerry 2005年07月14日
^_^ jf
回复 点赞
薛定谔之死猫 2005年07月14日
卡住了,晕
回复 点赞
qrlvls 2005年07月14日
今天网络是怎么了
回复 点赞
beyondtkl 2005年07月14日
3. 哈哈。。
回复 点赞
qrlvls 2005年07月14日
双星是怎样炼出来的
回复 点赞
bohut 2005年07月14日
1
回复 点赞
发动态
发帖子
非技术类
创建于2007-09-28

1477

社区成员

5.9w+

社区内容

VC/MFC 非技术类
社区公告
暂无公告