读书人

关于结构体的一些询问。高手请留步。多

发布时间: 2012-06-13 12:30:18 作者: rapoo

关于结构体的一些询问。高手请留步。谢谢。
首先定义结构体
struct a
{
int a;
int b;
int c;
};
int wrstruct();
int main()
{
a *e;
wrstruct();
cout << e->a << endl; //<-----这里。就只是结构体指针的空间地址。而不是我需要的 数值1.
return 0;
}
int wrstruct()
{
a *e;
e->a = 1;
e->b = 2;
e->c = 3;
retrun 0;
}

问题是。我理解的结构体为。进入主体方法后。结构体已经存在。
我利用wrstruct()方法把信息已经写入结构体。
为何我在调用的时候就出不来了呢。
多谢高手解答。一直对结构体所存储以及表达的方式很迷惑。望高手指点指点。谢谢

[解决办法]
a *e;
你不new开辟空间?
[解决办法]
struct a
{
int a;
int b;
int c;
};
int main()
{
a *e=new a;
e->a = 1;
e->b = 2;
e->c = 3;
cout << e->a << endl;
return 0;
}

[解决办法]
"定义了结构体a 那么他不就已经开辟了空间吗"
概念错,定义了结构体 其实就是定义一个‘数据类型’,与 内部数据类型 int 没有差异,也叫‘自定义数据类型’。
a *e;只是定义了a类型的指针,他指向哪里,你没给定。

[解决办法]
a* wrstruct()
{
a *pe=new a;
e->a = 1;
e->b = 2;
e->c = 3;
// please delete it after using !
retrun pe;
}
//
用完 delete pe;
[解决办法]
你main里面和 wrstruct()里面都不是同一个变量,内存地址都不一样,当然得不到你想要的数值啊

读书人网 >VC/MFC

热点推荐