[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/10 15:35 / Filesize : 145 KB / Number-of Response : 713
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 114



1 名前:デフォルトの名無しさん [2013/04/22(月) 04:47:19.70 ]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 113
toro.2ch.net/test/read.cgi/tech/1362824689/
★過去スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 164代目
toro.2ch.net/test/read.cgi/tech/1364700745/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
codepad.org/
ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

618 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 19:50:13.23 ]
>>558
ゲームデザインをシナリオと一緒にすんな
テトリスくらいならいいけど、最近のRPGみたいなやつを素人がデザインすると地獄絵図になるぞ

〜ゲームデザイナーなし劇場〜

開発者A「なぁ、このボスに到達するときにこのパーティーのレベルって高くない?」
開発者B「え?じゃぁ経験値少なくするか」
開発者C「おい、全体的に減らすなよ、その前のボス戦ではちょうどよかったんだから」
「じゃぁそのボス弱体化すればいいじゃん」
「えっ」
「えっ」
「そうじゃなくてAが言ってたボスを強くすればいいんじゃね?」
「強くって何を?HPあげるの?攻撃力あげるの?」
「HP上げたら長期戦になってダルいだけだろ、攻撃力上げろよ」
「・・・攻撃力あげてみたよ、攻撃力上げたら魔法使いが一撃で死んだよ」
「上げすぎなんだろ馬鹿」
「だってそのくらい上げないと他のキャラほとんどダメージ受けないんだもん」
「ダメージの計算式がおかしいんじゃね?」
「はい」
「はいじゃないが」
「いや、ダメージの計算式変えると全体のバランス変わってくるから無理です」
「普通に魔法使いの防御力が低すぎるだけだと思われ」
「そのボス直前の街で買える防具に、魔法使い用のもう1つ上位の防具追加したらどうよ」
「追加しなくてもその防具の防御力上げれば済む話だろ」
「属性防御が付いてる代わりに、防御力低くしてあるんだけど、防御力上げちゃうの?」
「いいから上げろよ」
「・・・防御力上げてみたよ、ボスはちょうどよくなったけど、雑魚戦でダメージほとんど受けないから面白くないんだが」

ってのが延々と続く

619 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 22:06:03.65 ]
int *hoge()
{
int a = 10;
return &a;
}
これってマズい?

620 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 22:11:33.47 ]
>>619
別にコンパイルエラーにはならないと思うよ。
返り値を使わない分にはなんの問題もない。

621 名前:デフォルトの名無しさん [2013/05/08(水) 22:33:04.89 ]
>>618
逆にいえばゲームデザイナーの意見に口出しできないって事じゃね?

622 名前:デフォルトの名無しさん [2013/05/08(水) 22:46:10.60 ]
staticだったら使えるの?

623 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 23:30:15.90 ]
無能馬鹿はとっとと死ね
試せばいいだろ無能

624 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 23:38:50.21 ]
>C言語なら俺に聞け

625 名前:デフォルトの名無しさん [2013/05/08(水) 23:47:45.31 ]
わからないから煽る

626 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 23:54:57.51 ]
>>619
まずい



627 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:00:23.89 ]
まずいというか普通そんなコード書かないのでは

628 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:01:47.83 ]
ポインタは初心者には難しいから(震え声)

629 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:03:46.81 ]
自分でわからないコードは書くな とよく聞くのですが
この「わかる」というのはどの程度までを指すのでしょうか?
極端な話printf("hello");が何をしてるのか私は説明できません
printf()は引数を標準出力に出力する関数だということはわかります。構造はわかりません。
プログラムを理解するというのはどこまで掘り下げればいいのでしょうか?みなさんの意見をお聞かせ下さい。

630 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:05:09.40 ]
ロベールのC++教室 - 第8章 アドレスを返す関数 -
www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03008.html
int* Func()
>{
> int a = 0;
> return &a;
>}
>のようなことは絶対にしてはいけません

631 名前:デフォルトの名無しさん [2013/05/09(木) 00:15:09.87 ]
だからstaticだったらどうなのよ

632 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:27:11.87 ]
スタックポインタを取得するために敢えてそういう事をする可能性もなくはないが、
どう確保されるかよく分からない内部変数よりは
呼び出し規約により位置がはっきり決まる引数の方がよさげ

staticなら別に何ともない

633 名前:デフォルトの名無しさん [2013/05/09(木) 00:46:28.63 ]
>>629
アセンブリ勉強きて実行ファイル逆アセして読めば?

634 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 02:25:07.91 ]
>>631
strtokやlocaltime, asctime, ctime辺りは、
staticかグローバルか知らないけど
そういうアドレス返しているね。

他にもあったかな?

635 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:00:37.10 ]
すみません。さっぱりわかりません。どなたか教えてください><
テキストファイル○○.docを読み込み、fscanf, strlenを使用して、長さが1以上の語の数を数えて出力するプログラムを書きなさい。
ただし、ファイル名の指定は、fopenの引数として直接プログラム中に書いて指定して下さい。(ヒント:テキストの中の単語をfscanfを使って1つずつ読み込み、その長さが2文字以上ならばワード数を1つインクリメントする。)
○文字列の長さを測る方法:strlen()を使用する。
○テキストファイル○○.docには長い英文が書かれている。
よろしくおねがいします。

636 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:14:44.99 ]
宿題は宿題スレへ



637 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:16:53.58 ]
QZ自演キターww

638 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:22:30.70 ]
宿題スレなくなってるのでここで聞きました。どうかお願いします

639 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:36:09.85 ]
まもなくQZの自演によるウンコード排出が始まります
とくとご覧あれw

640 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:37:00.92 ]
なくなってたら立てればいいじゃない

641 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:39:49.74 ]
こうやっていい流れの時に自演宿題して雰囲気を悪くするQZは極悪

642 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:42:41.26 ]
>>635
ideone.com/L5XpbZ

643 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:43:36.56 ]
キターww

644 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 11:47:47.55 ]
>>642
早速の回答本当にありがとうございます。

PS自演とか言って騒いでるやつなにが楽しいの⁈

645 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:02:12.93 ]
○○.docが非常に長くて、かつ末尾最適化が効かないコンパイラだったら
スタックオーバーフローを起こすんじゃないの

素直にループ使えないの?

646 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:05:08.25 ]
エラーチェックとか入ってないけど非常に素直な書き方で、このまま提出でいいと思う。



647 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:09:21.50 ]
なるほど、こうやって潜在的バグを放置するのがQのやり方か

648 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:12:15.13 ]
countが初期化されてないからバグってるな。
適当にcount=0;しておいて。

649 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:13:45.01 ]
>>646
ほらね
QZがものすごい勢いで書いたからウンコードになる
質問開始から1時間もたっていない

650 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:20:32.45 ]
宿題の回答ならこんなもんだろ。

651 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:23:43.23 ]
QZの能力の無さを宿題レベルだからあえてそういう風にしたと誤魔化しましたね

652 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:25:21.21 ]
ゲーム専門学校に通ってるんですがわからない場所があります
count>=0
count>0
これってどう違うんですか?

653 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:26:25.05 ]
無能ゲー専死ね

654 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:34:52.58 ]
>>652
上は0以上。
下は1以上。

655 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:35:47.04 ]
>>652
上は count が 0 の場合に真だが、
下は count が 0 の場合に偽である。

「より大きい」と「以上」の違い。

656 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:36:25.59 ]
>>654
count が int とは限らないでよ。



657 名前:652 mailto:sage [2013/05/09(木) 12:46:23.28 ]
では
count>=-1
count>-1だと?

658 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:47:41.51 ]
うわっこんなくだらない奴がCやってんの

659 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:48:52.49 ]
>>657
不等号はマイナス値に使うと不定になる。

660 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:49:53.87 ]
QZは叩かれると話題を変えたがるから
>>652は自演の可能性がある

661 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:52:27.16 ]
ゲーム専門学校は無能だなw
頭腐ってんじゃないの?

662 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:53:06.40 ]
そりゃ落ちこぼれが通う場所ですから

663 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:57:01.35 ]
QZ以下の知能指数

664 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 13:03:08.65 ]
>>659
んなわけない。

665 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 14:04:50.86 ]
(QZの)嘘を嘘であると見抜けいないと掲示板を使うのは難しい

666 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 15:31:24.24 ]
外部結合、内部結合、無結合について詳しく教えて
意味がわからん



667 名前:デフォルトの名無しさん [2013/05/09(木) 15:50:15.00 ]
externってよくわからないけど
どこか一つのファイルで実体宣言して参照するファイルでexternで良いの?

668 名前:666 mailto:sage [2013/05/09(木) 16:02:30.52 ]
>>667
あってる実態は何もつけずに宣言
分身にextern

669 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 16:05:25.14 ]
>>667
ttp://www7b.biglobe.ne.jp/~robe/cpphtml/html01/cpp01069.html

670 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 16:29:24.30 ]
C++やん

671 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:43:31.26 ]
こんにちは
今大学の研究室にC言語で作成したツールがあります
大体ソースコードが15個、ヘッダーも同じくらいあり、ソースコードは合計1万行くらいあります
このツールは私が研究室に入る前の先輩方が3人で作ったそうです

今回、先生がこのツールを全く新しく作り直したいと言い出し、私一人で同じようなツールを開発することになりました

そこで、既存のツールがどのような処理を行っているか知るためにソースコードを読み始めたのですが、説明などのドキュメントはおろか、ソースコードにコメントは一切書いてありませんでした

また、メイン関数の中身も宣言→よくわからない処理→宣言→関数など、宣言も関数もまとめて書いてあらず、インデントも適当です
変数名、関数名も意味がわかりません

このようなものを解析するには、やっぱり一つ一つ追っていくしかないのでしょうか?

私はC言語で入門書の演習くらいしかやったことがありませんのでこれから勉強をもっとしなければなりませんが、こういうツールを作成するのにオススメの勉強方法などありますか?

672 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:47:42.51 ]
>>671
とりあえずコード整形ツール通すのと
構造解析するツールに通しておけば
手間を2割くらい減らせる

あとの8割は……まあガンバレw

673 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:50:44.72 ]
目的があってそのプログラムを動かしているんでしょう?
であれば、今までのソースにたよらず動作や原理から仕様を作り新しく組むのが近道です

674 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:52:09.41 ]
>>672
ありがとうございます
Cを普通に扱える人だったら、どのくらいで理解できるんですかね...
自分は1ヶ月じゃ無理そうです...

675 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:57:11.30 ]
>>673
そうしようと思ったのですが、使えるところは流用しろとのことでして...
また、先輩方3人でアルゴリズムや構造体を考えるのに半年、ツール開発で結局2年かかったとのことだったので、正直しんどいです

676 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:01:31.26 ]
doxygenに掛けて一度整理してみろ



677 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:04:41.91 ]
まずは教授にこれこれなので無理です、というべきだな
解決案か別の案か何か考えてくれると思うよ

678 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:06:31.41 ]
作り直したい理由によるな
もしかしたらラッパー作ればいいだけかもしれん

679 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:14:35.53 ]
ここにソース晒さないかぎり正確な答えは得られないわな
今の範囲であれば、やるだけ無駄だから外注に出せ、くらいだ

680 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:32:15.09 ]
リファクタリング厨 vs 動いてるなら触るな厨の戦い!

681 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:40:37.47 ]
なんで作り直したいのかまず聞くことだな

682 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:49:00.97 ]
まあdoxygenとgraphvizで出力してみて、教授と相談すればいい

683 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:10:09.56 ]
沢山の返答ありがとうございます!
doxygenというもの使ってみます!
作り直したい理由は、企業からそのツールが欲しいと言われたが今の何て出せるもんじゃないといった理由らしいです
あとは、前提として対応してこなかったものに対して対応できることがわかり、そのためには大幅な改変が必要だからと言った理由です

先生に相談してみます!

684 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:14:51.00 ]
言っておくけど、君じゃ4年かかっても無理だよ

685 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:19:18.17 ]
っと馬鹿が申しております

686 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:21:23.35 ]
>>683
学生が作ったものだからひどいですよwww
って言いながら企業に渡して、企業にリファクタしてもらえ。
当然リファクタ後の使用権と改修権は企業からもらう契約にしてな。
おまえじゃ無理。



687 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:29:02.38 ]
ゲー専のバカじゃ無理だからな
文章からしてゲー専

688 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:30:19.13 ]
ゲー専の学生ならきれいなコード書くんじゃないの
そもそも専門の教授ってなんだよ

689 名前:デフォルトの名無しさん [2013/05/09(木) 20:34:28.76 ]
広域変数を動的にメモリ確保ってできる?

690 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:35:23.76 ]
>>689
動的に確保したメモリを広域変数に割り当てればいいんじゃね?

691 名前:デフォルトの名無しさん [2013/05/09(木) 20:52:00.97 ]
>>690
サイズ不定なので不可能です

692 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:00:06.32 ]
malloc calloc realloc

693 名前:デフォルトの名無しさん [2013/05/09(木) 21:00:32.60 ]
char *kuso;
main()
{
kuso=malloc();
}

694 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:03:39.58 ]
このmallocが実行されたらどのようにメモリが確保されるから知らない無能ゲーム専門
早く死んだほうがいいよ

695 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:08:56.90 ]
alloca malloca valloc

696 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:19:49.13 ]
クソコードだけど動くわな
free忘れんなよ



697 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:25:35.95 ]
>>683
ソース整形も忘れずに。cならindentコマンドでもいける。
既存動作と比較できるツールも作る必要があると思うので、その分のスケジュールも相談するの忘れずに。
あと、可能なら既存動作を保証できるようにテストを先に作ってから修正始めた方がいい。
よくわからないものを修正するときはその方があとで楽。

698 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:45:15.35 ]
>>693
初心者に嘘教えるのが未だに居るな。

699 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:52:40.26 ]
もうC諦めてC++にしろ

700 名前:デフォルトの名無しさん [2013/05/09(木) 21:57:43.82 ]
>>698
それは聞き捨てならんな
・グローバル
・サイズ不定
というオーダーを満たしてやったうえ
変数名に心を込めたんだぞ

701 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 22:23:18.69 ]
>>700
引数くらい書けや

702 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 22:59:19.13 ]
>>701
どうでもいいことで煽るなよ。

703 名前:デフォルトの名無しさん [2013/05/10(金) 00:29:43.30 ]
array=malloc(sizeof(int)*n*2)で確保したものって
array[n][n]みたいな使い方できる?
型はint

704 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 00:35:23.40 ]
[n][n] だと n*n の器が必要だぜ

int *array = (int*)malloc(sizeof(int)*n*n);
[i][j] 番目 array[i*n + j]

どうしても array[i][j] と記述したいんだー ってんならポインタ配列にでも

705 名前:デフォルトの名無しさん [2013/05/10(金) 00:39:13.37 ]
>>704
それで良いです
ありがとう

706 名前:デフォルトの名無しさん [2013/05/10(金) 13:44:44.96 ]




707 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 13:48:24.87 ]
内部結合
他のモジュール内部を直接参照したり、一部を共有する。
mt-net.vis.ne.jp/ADFE_mail/0322.htm

ってあるけどCで書くとどんな感じ?

708 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 14:45:53.05 ]
>>707
普通の関数コール

709 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 14:53:39.27 ]
>>708
それはデータ結合と違うの?
引数渡すのがデータ結合らしいけど>>708の関数コールもデータ結合と同じじゃない?
test(a,b,c);みたいに引数送るときに呼び出してるし

関数コールって引数渡さずに関数だけ実行?
よくわからん

710 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 15:00:15.67 ]
>>707
localtime
strtok

711 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 15:01:04.13 ]
データ結合:引数に値渡し
スタンプ結合:構造体を渡す
制御結合:制御にかかわる引数を渡す、渡す先のモジュールのif文なのどのflag
外部結合:別モジュールのグローバル変数を参照
共通結合:別モジュールのグローバルな構造体を参照

内部結合だけがよくわからん
>>708>>710の単語じゃわからない

712 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 15:11:05.86 ]
データ結合はファイルとかDBを介する奴じゃないの






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<145KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef