トップページ > 記事閲覧
strcpyについて
名前:nk 日時: 2013/06/13 22:18

strcpyについての質問です。 VisualC++の2010にて以下のように作成したところ、warningが出力されます。 ==================================================================================== const char *test = "テスト"; char test2 strcpy( test2 , test ) ; // warning内容 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> i:\microsoft visual studio 10.0\vc\include\string.h(105) : 'strcpy' の宣言を確認してください。 ==================================================================================== 初歩的な質問だと思いますが、ご助言をいただきたく思います。 よろしくお願いします。
メンテ

Page: 1 |

Re: strcpyについて ( No.1 )
名前:かげさん 日時:2013/06/13 23:55

自分も以前、このwarningで困ったことがあります。 strcpyは、CRT関数のセキュリティ強化というものの一環で推奨されない関数になっています。 セキュリティが強化されたstrcpy_sというのがあったと思うので そのヘルプを探してみると良いと思います。 このエラーが出るときは大抵、関数名に_sをつけた関数が追加されています。 ただ、strcpyは、引数の数が変わっていたと思います。 コピー先のエリアのサイズを超えた文字数をコピーした時に オーバーフローが起きないようにするため コピー先のサイズを指定するのだったような気がします。 もしくは #include <stdio.h>の前に #define _CRT_SECURE_NO_WARNINGS と記述することでビルド時にwarningがでないようにすることもできます。
メンテ
Re: strcpyについて ( No.2 )
名前:nk 日時:2013/06/14 16:47

かげさん、ご助言ありがとうございます。 strcpy_sを使用することで問題解決致しました。 またご質問させていただくことがあるかと思いますが その際はどうぞよろしくお願いします。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存