クラス内のメンバとして使用されている構造体へのポインタを使って混乱を取り除こうとしています。私は次のコードを書いたが、プログラムがコンパイルされてもクラッシュする。次のコードで私が間違っていることを教えてください。c/C++の構造体へのポインタとの混同
#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;
}
googleのルール3.スマートポインタを代わりに使用します。 –