2

これは私を悩ませますが、memcpy を使用するだけの明らかな解決策は避けたいと思います。

struct Person
{
    //Some variables
};

void doSomething(char* pointerToSomeone)
{
    struct Person bob;

    //Assign pointerToSomeone to bob, somehow...
}

上記で、pointerToSomeone は Person 構造体へのポインターです。それをボブに割り当てるにはどうすればよいですか?きっとそれは可能ですか?

私は、賢明なキャスト、デファレンスなどと思われるものを数多く試しましたが、成功しませんでした(コンパイラエラー)。

4

4 に答える 4

2

できません。ただし、本当に a へのポインターであることが確実な場合は、ポインターを作成て型キャストを使用できます。pointerToSomeonePersonbob

struct Person *bob = (struct Person *) pointerToSomeone;
于 2013-04-23T11:49:36.177 に答える
1

これを簡単に行うことができます(有効なキャストであると仮定して):

struct Person bob = *((struct Person*) pointerToSomeone);

ポインターのスタックをコピーしていて、これを参照していないことに注意してください。

struct Person* bob = (struct Person*) pointerToSomeone;
于 2013-04-23T12:03:35.060 に答える