2017-10-25 21 views
-1

私は学校の練習問題に取り組んでいます。 教師の仕事から得たプロジェクトは間違いなく実行されます。 コンピュータに作成された新しいプロジェクトにコードをコピーすると、次のエラーが表示されます。 コンパイラの警告(レベル3)C4996私のプロジェクト(strcpy)で同じコードがビジュアルスタジオで動作しません2017

両方のコンパイラ設定を調べて同じにしました。 私は教師のプロジェクトからプロジェクトのプロパティファイルを作成し、自分のプロジェクトに挿入しようとしました。また、これは動作しません。 誰かがこの問題の解決に手伝ってもらえますか?

#include <stdio.h> 
#include <string.h> 


int main(void) 
{ 
    char s1[32]; 
    char s2[32]; 

    strcpy(s1, "abc def."); 
    strcpy(s2, "ghi_x"); 

    printf("s1=\"%s\" en s2=\"%s\"\n", s1, s2); 
    printf("s1 bevat %d symbolen en s2 bevat %d symbolen\n", strlen(s1),  strlen(s2)); 
    printf("De functie strcmp(s1,s2) geeft %d als functiewaarde\n", strcmp(s1, s2)); 
    getchar(); 
    return 0; 
} 

私が手にエラーが

Severity Code Description Project File Line Suppression State Error 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

+0

文字列を終了するには、最後に '\ 0'を追加する必要があります。 – akshayk07

+0

あなたはエラーを投稿できますか? –

+1

いいえ、すべてここで正しく終了します。私はどんな誤りも見ない。 「警告C4496」とは何ですか?確かに、あなたのコンパイラには、これらの記述を含むマニュアルがありますか? –

答えて

1

で迅速なGoogle検索は、「コンパイラは、(レベル3)C4996を警告する」あなたは非推奨の機能を使用していることを意味していることを示しています。 これはコードです。最も危険な原因は、あなたのstr*関数です。なぜなら、それらは一般的に安全ではないからです。 strn*の対応物(例:strncpy)に切り替えます。

+0

私は同意しますが、先生から得たファイルはこれらの機能でコード化されています。先生と同じ機能を使いたいです。コンパイラの設定に違いがあるに違いありませんが、私はそれを見つける方法が分かりません。 – reyntjensm

+0

その場合は、Cの質問をしていないので、コンパイラ/ツールの質問をしています。質問を編集してコンパイラ固有のタグを追加し、それに応じて質問を修正してください。 –

関連する問題