我试图用指向结构的指针消除一些混淆,这些结构在类中用作成员.我编写了以下代码,但即使程序编译崩溃也是如此.你能否在下面的代码中说出我做错了什么?
#include<stdio.h>
#include<string.h>
struct a{
int s;
int b;
char*h;
};
class test
{
public:
a * f;
void dh();
void dt();
};
void test::dh()
{
a d;
d.s=1;
d.b=2;
d.h="ffdf";
f=&d;
}
void test::dt()
{
printf("%s %d %d",f->h,f->b,f->s);
}
int main()
{
test g;
g.dh();
g.dt();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
void test::dh()
{
a d; <--
d.s=1;
d.b=2;
d.h="ffdf";
f=&d; <--
}
Run Code Online (Sandbox Code Playgroud)
您正在创建一个本地对象,d然后设置f为该对象的地址.一旦函数结束,对象就会超出范围而你会留下一个悬空指针.
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |