C言語なら俺に聞け(入門篇) Part 45at TECH
C言語なら俺に聞け(入門篇) Part 45 - 暇つぶし2ch39:デフォルトの名無しさん
09/02/20 10:45:50
久しぶりにプログラムを書いてみようとしたら、構造体やらポインタでつまずいた。

typedef struct Tag{
int member;
char text[1024];
}KOUZOUTAI;
メンバ変数のサイズの取得の仕方がわからん。

KOUZOUTAI Obj,*pObj;
pObj = &Obj
int size = sizeof(pObj->text);
でいいの? (size == 1024 になって欲しい)

あと、メンバ変数のアドレスを調べたい
memberのアドレスを調べるには、多分、&(pObj->member)でいいと思うけど、textの方は?
&(pObj->text[0])とかでいいの? それとも、pObj->text のようにするの?

普段、クラスはおろか構造体すら使わないので忘れてしまった。
どうでもいいけど、構造体ってコンストラクタを持てるんだね。初めて知った。

40:デフォルトの名無しさん
09/02/20 10:48:05
>普段、クラスはおろか構造体すら使わないので忘れてしまった。
>どうでもいいけど、構造体ってコンストラクタを持てるんだね。初めて知った。

そりゃあんた、言語が違いまんがな。

41:476
09/02/20 11:44:39
ポインタの説明が回りくどいんですが

int 型の変数へのポインタ値をしまうことのできるポインタ型変数 p が宣言される

これはつまり、int ball;があったとしたら

int型の変数(ball)のメモリアドレスの値(aのアドレス)をしまうことができる ポインタ*pってことでいいんですか?

日本語力とか言いますが一般人にはわかりずらいと思います

int a;  a は intである では無く  a は int型である のほうがわかりやすいと思いますし
int *a[10]; a は、intへのポインタの配列(要素数10)である。 これだと aはint型の配列を代入できるポインタとかでいいんですか?

ごっちゃになってるので誰か詳しくまとめてくれるとありがたいです。

42:デフォルトの名無しさん
09/02/20 11:48:32
試せばすぐ判るようなこと聞くなよ。
しかし仕事で構造体を使わないCプログラムを書いたこと無いんだが、
>>39はどういう分野の人なのかな。

あと476はもう結構

43:デフォルトの名無しさん
09/02/20 11:50:12
>日本語力とか言いますが一般人にはわかりずらいと思います
対象は一般人じゃなくてプログラマだからそれで良いんだよ。

>これだと aはint型の配列を代入できるポインタとかでいいんですか?
よくない

44:デフォルトの名無しさん
09/02/20 11:55:43
char score2grade(int s)
{
if(s >= 80){
return 'A';
}else if(s >= 65){
return 'B';
}else if(s >= 50){
return 'C';
}else if(s >= 35){
return 'D';
}else{
return 'F';
}
}
最後の行がparse error at end of inputらしいんですが
どう直せばいいのでしょうか?

45:476
09/02/20 11:58:46
44さん
私の環境ではコンパイラできました
たぶん他のコードでエラーがおこってるのかもしれません



46:44
09/02/20 12:01:21
自己解決できました

47:デフォルトの名無しさん
09/02/20 12:16:23
parse error at end of input
ホンニャクすると
こんだけのソースで仕事できっかよ!ゴラ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch