A problem of address
If I definied a class named A, then:
A *p=new p;
how can I get the address of 'p'?
and can I use an other variation of integer or double type to save this address?
问题点数:20、回复次数:9Top
1 楼leizhengdeng(权为妞妞所用,利为妞妞所谋)回复于 2001-11-15 18:12:11 得分 0
A *p=new p;//wrong
A *p = new A;
the p itself is the address you request to get.
to save the address:
int addr;
addr = (int)p;Top
2 楼zdb1025(三皮)回复于 2001-11-15 18:42:37 得分 0
我觉得他问的是 'p' 的地址,而不是 'p' 所指的地址
应为:
int addr;
addr= &p;
Top
3 楼heimeng()回复于 2001-11-15 18:52:14 得分 0
..Top
4 楼scicos()回复于 2001-11-15 19:33:03 得分 0
Thank you!
And if I do like this:
int addr;
addr=(int)p;
How can I use addr to access the contain of 'p'?Top
5 楼leizhengdeng(权为妞妞所用,利为妞妞所谋)回复于 2001-11-15 19:54:22 得分 0
A *pp;
pp = (A *)address;
I can't guarantee this will work.Top
6 楼leizhengdeng(权为妞妞所用,利为妞妞所谋)回复于 2001-11-15 20:08:00 得分 20
It do work:
#include <stdio.h>
class A
{
private:
int m;
public:
A(int i);
~A();
void say(void);
};
A::A(int i)
{
m = i;
}
A::~A()
{
}
void A::say(void)
{
printf("m = %d\n", m);
}
void main()
{
A *p=new A(10);
int addr;
addr= (int)p;
A *pp;
pp = (A *)addr;
pp->say();
delete pp;
return;
}Top
7 楼gffly(最佳前锋)回复于 2001-11-15 20:20:55 得分 0
&pTop
8 楼scicos()回复于 2001-11-15 20:21:46 得分 0
Thank you very muchTop
9 楼scicos()回复于 2001-11-15 20:23:36 得分 0
Thank you! leizhengdeng(E-农民) Top




