構造体の内容をコピーする・memcpyは使わない! †構造体のコピーを作るとき、memcpy関数を使用して複製をつくるようにコードを書いている人も多いと思います。 スポンサーリンク 関連記事 †
代入式を使った構造体の複製 †struct_cp.c (改行コードLF) #include <stdio.h> #include <string.h> struct INT_MEMBERS { int a; int b; int c; }; int main(void) { struct INT_MEMBERS src, dest; src.a = 1; src.b = 2; src.c = 3; dest = src; /* struct copy */ printf("dest.a = %d\n", dest.a); printf("dest.b = %d\n", dest.b); printf("dest.b = %d\n", dest.c); return 0; } 上記のC言語サンプルコードのコンパイルと実行結果を記します。 $ gcc struct_cp.c -o struct_cp $ ./struct_cp dest.a = 1 dest.b = 2 dest.b = 3 memcpyを使って構造体のコピーを作らない理由は、バグを少なくするためです。 以上、構造体のコピーはmemcpyを使わない!でした。 スポンサーリンク |