Close

[現場面接]C言語について

memset

種類 役割
pointer ポインタとは、変数のアドレスを記憶する変数のことです。
アドレスとはメモリ上に与えられた番号のことです。
変数を宣言すると、その変数にアドレスすなわちメモリ上の番号が与えられます。
アドレスにアクセスすることで変数の値を取得することができます。
アドレスはデフォルトでは16進数で表されます。
また、ポインタ変数は整数の加減算ができます。
メモリ上の番号の演算やアドレス先の値を取得する際に使用します。
mem set 関数は主にメモリを初期化する場合に使用します。
memset関数を使用するにはヘッダーファイル「string.h」をインクルードする必要があります。
memset関数の第1引数にはメモリを設定するオブジェクトのアドレスを、第2引数にはメモリにセットする値を、第3引数にはメモリにセットする値の文字数を入力します。
mem cpy memcpy関数を使って構造体の実体をコピーします。
memcpy関数は第1引数にコピー先のアドレス、第2引数にコピー元のアドレス、第3引数にはコピーするバイト数を入力します。
オブジェクト全体をコピーする場合、第3引数はコピー元のオブジェクト全体のバイト数となります。
memcpy関数でコピー元が構造体の場合にメンバにポインタを持っていると注意する必要があります。
memcpy関数を使って構造体全体をコピーするとメンバのポインタは浅いコピーとなり、コピー元の値を参照します。
したがってコピー元のポインタ先の値が変われば、コピー先のポインタの値も一緒に変わります。
Share on facebook
Share on twitter
Share on linkedin