ページ 11

初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 01:50
by c#超初心者の中学生
はじめまして。c#超初心者の中学生と申します。
先日、「C言語のe本」という、初心者向けの本を買い、gccというコンパイラをダウンロードして、ぼちぼちやっていました。それのp187,188に載ってる以下のソースコードを打ち込んでコンパイルしましたが、コマンドプロントにMyC203.c:20:11: error: in 'structMySruct' no member named 'name' is.と、何回やっても表示されるのでここに質問しました。なにとぞよろしくお願いします。
これが問題のソースコードです。
/* MyC203.c */
#include <stdio.h>
#include <string.h>

struct MyStruct {
int taijyu;
int sincho;
char namae[10];
};

int main(void)
{
int i;
struct MyStruct s;

i = 0;

s.taijyu = 20;
s.sincho = 120;
strcpy(s.name, "A0");

printf("A[%d]さん\n", i);
printf("名前:%s\n", s.namae);
printf("体重:%dで身長:%d\n", s.taijyu, s.sincho);

return 0;
}

Re: 初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 01:54
by h2so5
そのエラーは、
「構造体structMySructにはnameという名前のメンバは存在しません」という意味です。

構造体structMySructが持っているメンバは、
taijyu
sincho
namae
の3つです

どこかに間違ってnameと書いてないか確認してください。

Re: 初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 01:56
by たいちう
> char namae[10];
> strcpy(s.name, "A0");

nameとnamaeの違いです。
中学生じゃ難しいかもしれないけれど、
コンパイルエラーのメッセージも同じ指摘をしています。

Re: 初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 02:41
by c#超初心者の中学生
皆様、回答していただきありがとうございました。
テキストには、20行目のところは、nameと書けって書いてありました。
今度クレームしに行ってきます。

Re: 初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 09:24
by たいちう
> 今度クレームしに行ってきます。

社会勉強にはなるかもしれないけどお勧めできません。
世の中に完璧な物などありません。
誰でも間違いを犯すように、どんな本にも間違いはありえます。
不完全な、場合によっては恣意的な嘘を含んだ情報の中から、
自分に必要な情報を選択して学習しないといけません。

小学校から高校までの教科書などは、莫大な費用をかけて校正し、
殆ど誤字・脱字のない例外と考えて下さい。
(記載すべき内容が正しいかという事については反論も多いです)
普通の本でそれをやってしまうと高くなりすぎて誰も買いません。


と、書きながら思い出しましたが、私も昔クレームの電話をしました。
あまりにも間違いの多い入門書は有害である、というような事を言ったと思います。
数カ月後に間違いの少し減った第2版が送られてきました。

1つや2つの間違いで大騒ぎすることもないと思いますので、
間違い探しのつもりで5つ見つけてみてはどうでしょうか?
5つという数字に特に意味はありませんが、出版社の立場を想像すると、
「間違いの指摘はありがたいけど、1つ見つけるたびに電話されたら
正直言って対応が面倒」ということです。

出版社のWebサイトに正誤表がありました。
http://www.shuwasystem.co.jp/books/7980 ... 542-8.html
これに載っていない物で5つ探しましょう。
(nameとnamaeについては載っていません)

Re: 初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 10:49
by 九位
あと余計なお世話かもしれないが、一言。

今回の問題然りだが、構造体と変数の理解ができていればわかったと思うぞ
(たぶんいきなり説明なしに構造体とか使かっていたなら別だが)

丸写しして動いても、その記述の理由が理解できないと意味ないぞ

Re: 初心者の質問ですが、よろしくお願いします。

Posted: 2011年6月04日(土) 12:02
by softya(ソフト屋)
これも余計なおせっかいですが、C言語とは別にC#という言語があるので「c#超初心者の中学生」と書くと別の言語の質問にみえてしまいますね。