構造体

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
田中太郎
記事: 24
登録日時: 13年前

構造体

#1

投稿記事 by 田中太郎 » 13年前

構造体を勉強しているのですが、構造体の中の変数への代入で詰まってしまいました。
エラーは、cppファイルの mon[0].pow の0と後ろのピリオドに出ていて、「配列のサイズは0より大きくなくてはいけません。」と、
「宣言が必要です。」が表示されました。
作成環境は、Win7、VC++2010、DxLib、を使用しています。
どなたかご教授お願いします。

※ヘッダーで MON_DEF_H となっているのは MON_DAT_DEF_H と書くと長いので、わざと MON_DEF_H としています。

コード:

//mon_dat.h

#ifndef MON_DEF_H
#define MON_DEF_H

typedef struct
{
	int num;
	int pow;
	int def;
}Mon_t;

extern Mon_t mon[2];

#endif

コード:

//mon_dat.cpp

#include "../h/mon_dat.h"

Mon_t mon[2] =
{
	{ 001, 1000, 500 },
	{ 002, 1500, 750 },
};

//↓これを実行させたいです。
//mon[0].pow = 2000;

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: 構造体

#2

投稿記事 by h2so5 » 13年前

変数への代入を関数外でしていませんか?

ミーン
記事: 8
登録日時: 13年前

Re: 構造体

#3

投稿記事 by ミーン » 13年前

よく分かりませんが、これでどうでしょうか?

コード:

Mon_t mon[2];

// 構造体の初期化
mon[0].num = 001;
mon[0].pow = 1000;
mon[0].def = 500;
mon[1].num = 002;
mon[1].num = 1500;
mon[1].def = 750;

mon[0].pow = 200
I've been deleted because of nothing.

田中太郎
記事: 24
登録日時: 13年前

Re: 構造体

#4

投稿記事 by 田中太郎 » 13年前

>h2so5さん
おっしゃる通りでした。
ごめんなさいとしか言いようがないくらい酷いですね。

コード:

void mod_dat()
{
	Mon_t mon[2] =
	{
		{ 001, 1000, 500 },
		{ 002, 1500, 750 },
	};

	mon[0].pow = 2000;
}
これでエラーは出ませんでした。
このような質問でお時間を取らせてしまい、申し訳ありませんでした。

>ミーンさん
関数を作っていなかっただけでした。
プログラムまで貼って頂いたのに、ごめんなさい。


今後もここで質問をすると思うので、その時はまたよろしくお願いします。
ありがとうございました。

閉鎖

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