strcpy

[ˈɛs tiː ɑːr ˈkɒpi] エスティーアールコピー

1. C言語の標準ライブラリ関数で、ある文字列を別の文字列(配列)にコピーします。

C言語において、指定されたソース文字列の全内容(NULL終端文字を含む)を、指定されたデスティネーションバッファにコピーするために使用されます。この関数は、デスティネーションバッファのサイズをチェックしないため、バッファオーバーフローの危険性があります。
char dest[20]; strcpy(dest, "Hello"); (20バイトの配列destを宣言し、"Hello"をdestにコピーします。)

2. バッファオーバーフローを引き起こす可能性があるため、使用が推奨されない文字列コピー関数。

`strcpy`は、コピー先のバッファサイズを検証せずにコピーを実行するため、コピー元の文字列がコピー先のバッファよりも長い場合に、プログラムが予期せぬ動作をしたり、悪意のあるコードが実行されたりする「バッファオーバーフロー」の脆弱性を引き起こす可能性があります。そのため、セキュリティを重視する現代のプログラミングでは、`strncpy`や`strcpy_s`のような、より安全な代替関数が推奨されます。
char buf[10]; strcpy(buf, "A very very long string"); // Causes buffer overflow (10バイトの配列bufに「非常に長い文字列」をコピーすると、バッファオーバーフローが発生します。)