入門レベルの質問

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

入門レベルの質問

#1

投稿記事 by フラッグ » 9年前

すいません初心者レベルの質問なのですがどこを捜しても載ってないので教えてください
この前、このような

コード:

typedef struct{
int a = 10
int b = 20
}test
コードをコンパイラ君に提出したのですがクラスメンバーを初期化できないとエラーを吐き出されました
構造体の中で数を代入したのがいけないのでしょうか?

それとポインタというものを覚えたのですが
どのサイトを見てもポインタに変数を代入?する方法しか載っておらず
どういったことにポインタを用いればいいのか分かりません
どんなときに使うかの例でもサイトでも構いませんので教えていただけませんか?

non
記事: 1097
登録日時: 9年前

Re: 入門レベルの質問

#2

投稿記事 by non » 9年前

ポインタを使う例ですが、どのテキストでも必ずっていいほど使われているのが、
2つの変数の値を交換する関数 swap の例ではないでしょうか?
まずは、この辺から理解されるのがよろしいかと。
non

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 入門レベルの質問

#3

投稿記事 by softya(ソフト屋) » 9年前

C言語だとして答えますが、
フラッグ さんが書きました:コードをコンパイラ君に提出したのですがクラスメンバーを初期化できないとエラーを吐き出されました
構造体の中で数を代入したのがいけないのでしょうか?
エラーは、C++でコンパイルされた様ですね。
C言語でコンパイルすれば別のエラーが出ます。

構造体はあくまで構造の宣言であって実体の宣言では無いので値は代入できません。

コード:

typedef struct{
 int a;
 int b;
} test_t;
test_t test_d = {0,0};
といった感じで実体を宣言するときに初期値で与えてください。
フラッグ さんが書きました: それとポインタというものを覚えたのですが
どのサイトを見てもポインタに変数を代入?する方法しか載っておらず
どういったことにポインタを用いればいいのか分かりません
どんなときに使うかの例でもサイトでも構いませんので教えていただけませんか?
必然で言うと、文字列はポインタで無ければいけません。
それと呼び出した関数の先で中身を書き換えて欲しい場合はポインタで渡さないと出来ません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

たかぎ
記事: 328
登録日時: 9年前
住所: 大阪
連絡を取る:

Re: 入門レベルの質問

#4

投稿記事 by たかぎ » 9年前

フラッグ さんが書きました:

コード:

typedef struct{
int a = 10
int b = 20
}test
コードをコンパイラ君に提出したのですがクラスメンバーを初期化できないとエラーを吐き出されました
構造体の中で数を代入したのがいけないのでしょうか?
C++0xならそんなこともできるわけですが、現時点でこの機能に対応している処理系はなかったように思います。
フラッグ さんが書きました:それとポインタというものを覚えたのですが
どのサイトを見てもポインタに変数を代入?する方法しか載っておらず
どういったことにポインタを用いればいいのか分かりません
どんなときに使うかの例でもサイトでも構いませんので教えていただけませんか?
下記を参照してください。
http://www.kijineko.co.jp/node/482

フラッグ

Re: 入門レベルの質問

#5

投稿記事 by フラッグ » 9年前

もうひとつ教えてもらえませんか?
さきほど、このようなコードを入力したのですが
未定義のシンボルと言われました

コード:


	typedef struct{
          int x ;
	int y ;
	char name;
	}test;
	                          
	test test2 = {32,24};
	
	LoadGraphScreen( x , y , "イラスト/戦闘機" , TRUE ) ;
どこがいけないのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 入門レベルの質問

#6

投稿記事 by softya(ソフト屋) » 9年前

x,yは構造体testのメンバですので、実体であるtest2の値を参照する場合は、
LoadGraphScreen( test2.x , test2.y , "イラスト/戦闘機" , TRUE ) ;
と書かないといけません。

参考
 ↓
「構造体」
http://www9.plala.or.jp/sgwr-t/c/sec15.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Suikaba
記事: 194
登録日時: 9年前

Re: 入門レベルの質問

#7

投稿記事 by Suikaba » 9年前

x,yが宣言されていません。かな?
testという構造体の中で宣言されているので、このコードでは
test2.x, test2.y
とするのがいいかとおもいます。
間違ってたらすいませんw
最後に編集したユーザー Suikaba on 2011年4月25日(月) 23:09 [ 編集 1 回目 ]

フラッグ

Re: 入門レベルの質問

#8

投稿記事 by フラッグ » 9年前

お二人さま、ありがとうございました
できました!

閉鎖

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