タグ

ブックマーク / tsurujiro.blog.fc2.com (1)

  • A級プログラマーへの道 構造体のコピーにmemcpyは使わない

    僕が中堅社員になるまでの頃、実務のソースでは、構造体のコピーは memcpy で行うのが当たり前のように書かれていました。 struct { int n; char str[16]; } a, b; a.n = 100; strncpy(a.str, "text", sizeof(a.str)); memcpy(&b, &a, sizeof(a));    // a を b にコピー しかし、この memcpy による構造体のコピーには、問題があります。 例えば、以下のように各メンバーの型、配列のサイズなどが異なっているような異なった型の構造体を指定してしまった場合、memcpy でコピーすると、メモリ上のデータが壊されてしまいます。 struct { int n; char str[256]; } a; struct { short s; char str[16]; } c; a.n =

  • 1