C言語で構造体同士の代入を行うメソッドは?

C言語において,構造体の代入は次の方法で行える。

  1. ソース構造体の各メンバーの値を、ターゲット構造体の対応するメンバーにそれぞれ代入する。
struct Point {
    int x;
    int y;
};

// 创建源结构体
struct Point source = {1, 2};

// 创建目标结构体
struct Point target;

// 逐个成员赋值
target.x = source.x;
target.y = source.y;
  1. 代入演算子を使って、元の構造体をターゲットの構造体に直接代入すると、構造体のメンバーのコピーが自動的に行われます。たとえば、
struct Point {
    int x;
    int y;
};

// 创建源结构体
struct Point source = {1, 2};

// 创建目标结构体,并使用赋值运算符赋值
struct Point target = source;

構造体の代入操作は構造体の値のコピーのみ行い、構造体内のポインタが参照しているメモリアドレスには影響を与えません。構造体がポインタメンバーを含む場合は、浅いコピーによる問題が発生しないように特に注意する必要があります。

bannerAds