"C2440: 'return' : 'char [<要素数>]' から 'char' に変換できません。 " に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2440: 'return' : 'char [<要素数>]' から 'char' に変換できません。 この変換が可能なコンテキストはありません。


ソース(バグ有り):

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

char func();
char func()
{
static char work[]="test";
return work; } int main() {
printf(func());
return 0; }


原因:
func 関数は文字列("test")のアドレスを返すべきですが、char(1文字)を返す宣言がされています。

対処:
func 関数を文字列のアドレスを返す型に修正します。

"test"のアドレスは work です。


ソース(修正済み):

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

char *func();
char *func()
{
static char work[]="test";
return work; } int main() {
printf(func());
return 0; }

スポンサード リンク



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