エラーE0144  エンティティの初期化

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mmli3y0

エラーE0144  エンティティの初期化

#1

投稿記事 by mmli3y0 » 7年前

プログラミング初心者です。現在この書籍
www.rutles.net/download/445/
で学習しているのですが、
「型”cont char*"の値を使用して"char*"のエンティティを初期化することはできません」と、表示されました。
ソースファイルの拡張子を.cに変更してみても別のエラーが出てしまいます。
プロジェクトは visual C++「Windows デスクトップ ウィザード」を使用しています。

C言語とC++は大きく違うと耳にしましたが対処法がわからない状況です。
対処の仕方などがわかる方ご教示よろしくお願いします。





貼り付けのやり方が間違っていたら申し訳ありません↓

コード:

#include <stdio.h>
#include <GConsoleLib.h>

//マップデータ
#define MAXWIDTH 10
#define MAXHEIGHT 7
int g_mapdata[MAXHEIGHT][MAXWIDTH] = {

	//0 1 2 3 4 5 6 7 8 9 
	{ 1,0,1,1,1,1,1,1,1,1},//0
	{ 1,0,0,1,2,0,0,1,3,1},//1
	{ 1,1,0,1,1,1,0,1,0,1},//2
	{ 1,0,0,0,0,0,0,1,0,1},//3
	{ 1,0,1,1,1,1,1,1,0,1},//4
	{ 1,0,0,0,0,0,0,0,0,1},//5
	{ 1,1,1,1,1,1,1,1,1,1},//6
};

//マップの部品の画像
char *g_images[] = {
	"C:\\GConsole追加ファイル\\sampleimg\\chap5-1-field.png",
	"C:\\GConsole追加ファイル\\sampleimg\\chap5-1-wall.png",
	"C:\\GConsole追加ファイル\\sampleimg\\chap5-1-goal.png",
	"C:\\GConsole追加ファイル\\sampleimg\\chap5-1-key.png",
	"C:\\GConsole追加ファイル\\sampleimg\\chap5-1-man.png"
};

//関数プロトタイプ宣言
void DrawMap();


int main() {
	gcls();
	gfront();

	DrawMap();
}

//マップ表示
void DrawMap() {
	for (int y = 0; y < MAXHEIGHT; y++) {
		for (int x = 0; x < MAXWIDTH; x++) {
			gimage(g_images[g_mapdata[y][x]], x * 62, y * 62);
		}
	}
}

Bull
記事: 149
登録日時: 11年前

Re: エラーE0144  エンティティの初期化

#2

投稿記事 by Bull » 7年前

これはインテリセンスのエラーだと思いますが、コンパイル時にも出ますか?
コンパイルエラーでないのであれば、無視するのも一つの手です。

エラーの理由は文字列リテラルの型は const char [] であるのに
char * の初期化に使っているため、型が違うといっているのでしょう。

プログラムの修正は 20行目を

コード:

onst char *g_images[] = {
とすればいいです。

E0167 型 "const char *" の引数は型 "char *" のパラメーターと互換性がありません
こちらも参照してみてください。

mmli3y0

返信

#3

投稿記事 by mmli3y0 » 7年前

なるほど。型が違ったのですね。
おっしゃる通り const char で、出来ました。
ありがとうございますm(__)m

返信

“C言語何でも質問掲示板” へ戻る