0
さて、私は構造体の構造体の構造体を持っています... 他のすべての系列を割り当てることなく、すべてのデータを含む構造体全体を新しいものにコピーする方法はありますか構造体?Cに割り当てられた構造体をコピーする
さて、私は構造体の構造体の構造体を持っています... 他のすべての系列を割り当てることなく、すべてのデータを含む構造体全体を新しいものにコピーする方法はありますか構造体?Cに割り当てられた構造体をコピーする
はい、ちょうど割り当てる:
MyStruct a;
MyStruct b;
...
a = b;
これは実行浅いコピー。いずれかの構造体にポインタが含まれている場合は、ポインターだけがコピーされ、ポインタはコピーされません。 ディープコピーが必要な場合は、独自のルーチンを作成する必要があります。
+1。ただし、環境によっては単純な割り当てでは不十分な場合があります。コンパイラの中には 'memcpy'を文字通り呼び出すものがあるので、あなたの環境でそのシンボルが定義されていない(あるいは奇妙なセマンティクスがある)場合は、困っているかもしれません。 –
@CarlNorum:それは上記がC89であることを考えると、非常に面倒です。 –
これは実際には非常に面倒ですが、残念なことに本物です。 –