"" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2665: 'strcpy_s': 2 オーバーロードのどれも、すべての引数の型を変換できませんでしたC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\string.h(123): note: 'errno_t strcpy_s<10>(char (&)[10],const char *) throw()' の可能性があります

ソース(バグ有り):

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

int main()
{
int i = 0;
char test_string[] = " 12345";
//文字列の先頭からスペースではない文字をサーチする
while ( test_string[i] != '\0' && test_string[i] == ' ' )
{
i++;
}
//元の文字列にスペースをカットしたポインタからコピーする
strcpy_s(test_string, +test_string[i]);
printf("%s" , test_string);
return 0; }


原因:


対処:


ソース(修正済み):

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

int main()
{
int i = 0;
char test_string[] = " 12345";
//文字列の先頭からスペースではない文字をサーチする
while ( test_string[i] != '\0' && test_string[i] == ' ' )
{
i++;
}
//元の文字列にスペースをカットしたポインタからコピーする
strcpy_s(test_string, &test_string[i]);
printf("%s" , test_string);
return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]