関数の 1 つで構造体へのポインタを返しています。メインの構造体の値の 1 つを出力すると、それは正しいです。ただし、そのポインターを別の関数に渡して値にアクセスしようとすると、正しくない値が出力されます。その値はアドレスのようです。
これらの呼び出しは私たちのメインにあります:
struct temp * x = doThis();
printf("x->var1 = %d\n", x->var1);
doThat(&x);
doThat では、以下を出力します。
void doThat(void * x)
{
struct temp * x2 = (struct temp *) x;
printf("x2->var1 %d", x2->var1);
}
doThis 関数は void ポインターを返し、doThat 関数はパラメーターとして void ポインターを受け取ります。