13/05/07 12:30:18.12
char str[]="ABC"; /* Main関数内*/
これってどうなってんの?文字列リテラルだと定数領域に確保されてその先頭アドレスが返るって話だけど
配列の場合はスタック領域のアドレスが入ってたけど何で?
Auto変数だからスタックにstr配列が確保されて文字列リテラルで定数領域に文字列が確保されてその先頭アドレスからスタック領域にコピーしてるって感じ?
コピーしてる命令は配列とかがやってんの?教えてください
590:デフォルトの名無しさん
13/05/07 12:45:46.28
仕様の理解はそれでいい
実際どうなってるかは逆アセンブルしてみるしかない
591:デフォルトの名無しさん
13/05/07 12:57:27.47
>>590
>>476がいってるmemcpyくさいなぐぐってみるか
メモリ理解とアセンブラ理解してるとしてないとでは全く違ってくるなこれ
592:デフォルトの名無しさん
13/05/07 15:01:27.75
言われてみれば最近のゲームはリッチなアイコンが付いてるね
アイテム名の横に出るやつじゃなくて画面下の説明欄に一緒に出てくるやつ
アイコンというよりもはや絵だよな
593:デフォルトの名無しさん
13/05/07 15:09:55.57 qEqQNQf6O
そうして開発コストがあがっていく。
594:デフォルトの名無しさん
13/05/07 15:45:32.94
配列にいれる分コスト掛かるから参照するだけならポインタにしろってことか
595:デフォルトの名無しさん
13/05/07 16:12:23.83
いやconst []の方がいいコード出る
596:デフォルトの名無しさん
13/05/07 18:05:08.79
>>589
定数領域に"ABC"取って、何らかの方法で"ABC"をstrへコピーしてる
何らかの方法ってのはコンパイラ次第で、memcpyと同じかも知れない
でいいのかな
597:デフォルトの名無しさん
13/05/07 18:51:17.57
>>593
ID, ID!
598:デフォルトの名無しさん
13/05/07 19:00:25.55
あれこの板IDでるっけ?
599:デフォルトの名無しさん
13/05/07 19:31:33.81
【2ch】海外からの書き込みだとIDの末尾に ! が付くようになった
スレリンク(poverty板)
これが関係している?
600:片山博文MZパンク ◆0lBZNi.Q7evd
13/05/07 23:08:23.92
最近の逆コンパイラはすごいぞ。C言語だと元のコードがそのまま再現される。
他人に盗まれない仕事がしたいならC++にしろよ。
601:デフォルトの名無しさん
13/05/07 23:10:10.33
片山ゆうちゃんちーっすwww
602:デフォルトの名無しさん
13/05/07 23:41:12.39
>>600
そんな逆汗があるのか?URLよろ
603:デフォルトの名無しさん
13/05/07 23:51:15.51
携帯からだとIDが出るようになったのか
604:デフォルトの名無しさん
13/05/07 23:55:08.93
Qは確かp2経由だったけど巻き込まれたのか
605: ◆QZaw55cn4c
13/05/08 01:48:46.87
大丈夫みたいですよ静かになればいいのにね
606:デフォルトの名無しさん
13/05/08 08:18:40.99
>>600
C#だったらわかるんだけど‥‥
607:デフォルトの名無しさん
13/05/08 08:41:18.56
>>600
ねーよ
608:デフォルトの名無しさん
13/05/08 12:23:56.99
double型の変数dがほぼ0に等しいか調べるにはどうしたらいいですか?
609:デフォルトの名無しさん
13/05/08 12:38:58.01
>>608
fabs(x - constance) じゃだめなの?
610:デフォルトの名無しさん
13/05/08 12:49:06.27
つまんねっ
611:デフォルトの名無しさん
13/05/08 12:52:54.21
>>610
なら2chに来るな
それかお前が面白いネタを提供しろ
612:デフォルトの名無しさん
13/05/08 12:57:55.57
DBL_EPSILON 2.2204460492503131e-016 1.0+DBL_EPSILON !=1.0となる最小値
DBL_MIN 2.2250738585072014e-308 最小の正の値
URLリンク(msdn.microsoft.com)(v=vs.80).aspx
613:デフォルトの名無しさん
13/05/08 13:00:51.22
機械イプシロンの意味を理解している奴がどれだけいるのか・・・
614:デフォルトの名無しさん
13/05/08 13:05:32.61
覚えただけの知識を自慢
615:デフォルトの名無しさん
13/05/08 13:46:08.03
http://情報処理試験.jp/FE25a-pm/t09.html
このCわかりやすくいけた
難易度これくらいでいいな
616:デフォルトの名無しさん
13/05/08 16:55:41.18
Cしかできない奴ってGUI作るときにもC使っちゃうわけ?w
617:デフォルトの名無しさん
13/05/08 19:02:56.00
>>581
完成させることって重要だよな。
やっぱりプログラムを作るとしても使い回し能力ってのは必要なの?
要領が悪いから最初から作らないといけないんだよ!とか
言われたりするの?
618:デフォルトの名無しさん
13/05/08 19:50:13.23
>>558
ゲームデザインをシナリオと一緒にすんな
テトリスくらいならいいけど、最近のRPGみたいなやつを素人がデザインすると地獄絵図になるぞ
~ゲームデザイナーなし劇場~
開発者A「なぁ、このボスに到達するときにこのパーティーのレベルって高くない?」
開発者B「え?じゃぁ経験値少なくするか」
開発者C「おい、全体的に減らすなよ、その前のボス戦ではちょうどよかったんだから」
「じゃぁそのボス弱体化すればいいじゃん」
「えっ」
「えっ」
「そうじゃなくてAが言ってたボスを強くすればいいんじゃね?」
「強くって何を?HPあげるの?攻撃力あげるの?」
「HP上げたら長期戦になってダルいだけだろ、攻撃力上げろよ」
「・・・攻撃力あげてみたよ、攻撃力上げたら魔法使いが一撃で死んだよ」
「上げすぎなんだろ馬鹿」
「だってそのくらい上げないと他のキャラほとんどダメージ受けないんだもん」
「ダメージの計算式がおかしいんじゃね?」
「はい」
「はいじゃないが」
「いや、ダメージの計算式変えると全体のバランス変わってくるから無理です」
「普通に魔法使いの防御力が低すぎるだけだと思われ」
「そのボス直前の街で買える防具に、魔法使い用のもう1つ上位の防具追加したらどうよ」
「追加しなくてもその防具の防御力上げれば済む話だろ」
「属性防御が付いてる代わりに、防御力低くしてあるんだけど、防御力上げちゃうの?」
「いいから上げろよ」
「・・・防御力上げてみたよ、ボスはちょうどよくなったけど、雑魚戦でダメージほとんど受けないから面白くないんだが」
ってのが延々と続く
619:デフォルトの名無しさん
13/05/08 22:06:03.65
int *hoge()
{
int a = 10;
return &a;
}
これってマズい?
620:デフォルトの名無しさん
13/05/08 22:11:33.47
>>619
別にコンパイルエラーにはならないと思うよ。
返り値を使わない分にはなんの問題もない。
621:デフォルトの名無しさん
13/05/08 22:33:04.89
>>618
逆にいえばゲームデザイナーの意見に口出しできないって事じゃね?
622:デフォルトの名無しさん
13/05/08 22:46:10.60
staticだったら使えるの?
623:デフォルトの名無しさん
13/05/08 23:30:15.90
無能馬鹿はとっとと死ね
試せばいいだろ無能
624:デフォルトの名無しさん
13/05/08 23:38:50.21
>C言語なら俺に聞け
625:デフォルトの名無しさん
13/05/08 23:47:45.31
わからないから煽る
626:デフォルトの名無しさん
13/05/08 23:54:57.51
>>619
まずい
627:デフォルトの名無しさん
13/05/09 00:00:23.89
まずいというか普通そんなコード書かないのでは
628:デフォルトの名無しさん
13/05/09 00:01:47.83
ポインタは初心者には難しいから(震え声)
629:デフォルトの名無しさん
13/05/09 00:03:46.81
自分でわからないコードは書くな とよく聞くのですが
この「わかる」というのはどの程度までを指すのでしょうか?
極端な話printf("hello");が何をしてるのか私は説明できません
printf()は引数を標準出力に出力する関数だということはわかります。構造はわかりません。
プログラムを理解するというのはどこまで掘り下げればいいのでしょうか?みなさんの意見をお聞かせ下さい。
630:デフォルトの名無しさん
13/05/09 00:05:09.40
ロベールのC++教室 - 第8章 アドレスを返す関数 -
URLリンク(www7b.biglobe.ne.jp)
int* Func()
>{
> int a = 0;
> return &a;
>}
>のようなことは絶対にしてはいけません
631:デフォルトの名無しさん
13/05/09 00:15:09.87
だからstaticだったらどうなのよ
632:デフォルトの名無しさん
13/05/09 00:27:11.87
スタックポインタを取得するために敢えてそういう事をする可能性もなくはないが、
どう確保されるかよく分からない内部変数よりは
呼び出し規約により位置がはっきり決まる引数の方がよさげ
staticなら別に何ともない
633:デフォルトの名無しさん
13/05/09 00:46:28.63
>>629
アセンブリ勉強きて実行ファイル逆アセして読めば?
634:デフォルトの名無しさん
13/05/09 02:25:07.91
>>631
strtokやlocaltime, asctime, ctime辺りは、
staticかグローバルか知らないけど
そういうアドレス返しているね。
他にもあったかな?
635:デフォルトの名無しさん
13/05/09 11:00:37.10
すみません。さっぱりわかりません。どなたか教えてください><
テキストファイル○○.docを読み込み、fscanf, strlenを使用して、長さが1以上の語の数を数えて出力するプログラムを書きなさい。
ただし、ファイル名の指定は、fopenの引数として直接プログラム中に書いて指定して下さい。(ヒント:テキストの中の単語をfscanfを使って1つずつ読み込み、その長さが2文字以上ならばワード数を1つインクリメントする。)
○文字列の長さを測る方法:strlen()を使用する。
○テキストファイル○○.docには長い英文が書かれている。
よろしくおねがいします。
636:デフォルトの名無しさん
13/05/09 11:14:44.99
宿題は宿題スレへ
637:デフォルトの名無しさん
13/05/09 11:16:53.58
QZ自演キターww
638:デフォルトの名無しさん
13/05/09 11:22:30.70
宿題スレなくなってるのでここで聞きました。どうかお願いします
639:デフォルトの名無しさん
13/05/09 11:36:09.85
まもなくQZの自演によるウンコード排出が始まります
とくとご覧あれw
640:デフォルトの名無しさん
13/05/09 11:37:00.92
なくなってたら立てればいいじゃない
641:デフォルトの名無しさん
13/05/09 11:39:49.74
こうやっていい流れの時に自演宿題して雰囲気を悪くするQZは極悪
642:デフォルトの名無しさん
13/05/09 11:42:41.26
>>635
URLリンク(ideone.com)
643:デフォルトの名無しさん
13/05/09 11:43:36.56
キターww
644:デフォルトの名無しさん
13/05/09 11:47:47.55
>>642
早速の回答本当にありがとうございます。
PS自演とか言って騒いでるやつなにが楽しいの⁈
645:デフォルトの名無しさん
13/05/09 12:02:12.93
○○.docが非常に長くて、かつ末尾最適化が効かないコンパイラだったら
スタックオーバーフローを起こすんじゃないの
素直にループ使えないの?
646:デフォルトの名無しさん
13/05/09 12:05:08.25
エラーチェックとか入ってないけど非常に素直な書き方で、このまま提出でいいと思う。
647:デフォルトの名無しさん
13/05/09 12:09:21.50
なるほど、こうやって潜在的バグを放置するのがQのやり方か
648:デフォルトの名無しさん
13/05/09 12:12:15.13
countが初期化されてないからバグってるな。
適当にcount=0;しておいて。
649:デフォルトの名無しさん
13/05/09 12:13:45.01
>>646
ほらね
QZがものすごい勢いで書いたからウンコードになる
質問開始から1時間もたっていない
650:デフォルトの名無しさん
13/05/09 12:20:32.45
宿題の回答ならこんなもんだろ。
651:デフォルトの名無しさん
13/05/09 12:23:43.23
QZの能力の無さを宿題レベルだからあえてそういう風にしたと誤魔化しましたね
652:デフォルトの名無しさん
13/05/09 12:25:21.21
ゲーム専門学校に通ってるんですがわからない場所があります
count>=0
count>0
これってどう違うんですか?
653:デフォルトの名無しさん
13/05/09 12:26:25.05
無能ゲー専死ね
654:デフォルトの名無しさん
13/05/09 12:34:52.58
>>652
上は0以上。
下は1以上。
655:デフォルトの名無しさん
13/05/09 12:35:47.04
>>652
上は count が 0 の場合に真だが、
下は count が 0 の場合に偽である。
「より大きい」と「以上」の違い。
656:デフォルトの名無しさん
13/05/09 12:36:25.59
>>654
count が int とは限らないでよ。
657:652
13/05/09 12:46:23.28
では
count>=-1
count>-1だと?
658:デフォルトの名無しさん
13/05/09 12:47:41.51
うわっこんなくだらない奴がCやってんの
659:デフォルトの名無しさん
13/05/09 12:48:52.49
>>657
不等号はマイナス値に使うと不定になる。
660:デフォルトの名無しさん
13/05/09 12:49:53.87
QZは叩かれると話題を変えたがるから
>>652は自演の可能性がある
661:デフォルトの名無しさん
13/05/09 12:52:27.16
ゲーム専門学校は無能だなw
頭腐ってんじゃないの?
662:デフォルトの名無しさん
13/05/09 12:53:06.40
そりゃ落ちこぼれが通う場所ですから
663:デフォルトの名無しさん
13/05/09 12:57:01.35
QZ以下の知能指数
664:デフォルトの名無しさん
13/05/09 13:03:08.65
>>659
んなわけない。
665:デフォルトの名無しさん
13/05/09 14:04:50.86
(QZの)嘘を嘘であると見抜けいないと掲示板を使うのは難しい
666:デフォルトの名無しさん
13/05/09 15:31:24.24
外部結合、内部結合、無結合について詳しく教えて
意味がわからん
667:デフォルトの名無しさん
13/05/09 15:50:15.00
externってよくわからないけど
どこか一つのファイルで実体宣言して参照するファイルでexternで良いの?
668:666
13/05/09 16:02:30.52
>>667
あってる実態は何もつけずに宣言
分身にextern
669:デフォルトの名無しさん
13/05/09 16:05:25.14
>>667
URLリンク(www7b.biglobe.ne.jp)
670:デフォルトの名無しさん
13/05/09 16:29:24.30
C++やん
671:デフォルトの名無しさん
13/05/09 18:43:31.26
こんにちは
今大学の研究室にC言語で作成したツールがあります
大体ソースコードが15個、ヘッダーも同じくらいあり、ソースコードは合計1万行くらいあります
このツールは私が研究室に入る前の先輩方が3人で作ったそうです
今回、先生がこのツールを全く新しく作り直したいと言い出し、私一人で同じようなツールを開発することになりました
そこで、既存のツールがどのような処理を行っているか知るためにソースコードを読み始めたのですが、説明などのドキュメントはおろか、ソースコードにコメントは一切書いてありませんでした
また、メイン関数の中身も宣言→よくわからない処理→宣言→関数など、宣言も関数もまとめて書いてあらず、インデントも適当です
変数名、関数名も意味がわかりません
このようなものを解析するには、やっぱり一つ一つ追っていくしかないのでしょうか?
私はC言語で入門書の演習くらいしかやったことがありませんのでこれから勉強をもっとしなければなりませんが、こういうツールを作成するのにオススメの勉強方法などありますか?
672:デフォルトの名無しさん
13/05/09 18:47:42.51
>>671
とりあえずコード整形ツール通すのと
構造解析するツールに通しておけば
手間を2割くらい減らせる
あとの8割は……まあガンバレw
673:デフォルトの名無しさん
13/05/09 18:50:44.72
目的があってそのプログラムを動かしているんでしょう?
であれば、今までのソースにたよらず動作や原理から仕様を作り新しく組むのが近道です
674:デフォルトの名無しさん
13/05/09 18:52:09.41
>>672
ありがとうございます
Cを普通に扱える人だったら、どのくらいで理解できるんですかね...
自分は1ヶ月じゃ無理そうです...
675:デフォルトの名無しさん
13/05/09 18:57:11.30
>>673
そうしようと思ったのですが、使えるところは流用しろとのことでして...
また、先輩方3人でアルゴリズムや構造体を考えるのに半年、ツール開発で結局2年かかったとのことだったので、正直しんどいです
676:デフォルトの名無しさん
13/05/09 19:01:31.26
doxygenに掛けて一度整理してみろ
677:デフォルトの名無しさん
13/05/09 19:04:41.91
まずは教授にこれこれなので無理です、というべきだな
解決案か別の案か何か考えてくれると思うよ
678:デフォルトの名無しさん
13/05/09 19:06:31.41
作り直したい理由によるな
もしかしたらラッパー作ればいいだけかもしれん
679:デフォルトの名無しさん
13/05/09 19:14:35.53
ここにソース晒さないかぎり正確な答えは得られないわな
今の範囲であれば、やるだけ無駄だから外注に出せ、くらいだ
680:デフォルトの名無しさん
13/05/09 19:32:15.09
リファクタリング厨 vs 動いてるなら触るな厨の戦い!
681:デフォルトの名無しさん
13/05/09 19:40:37.47
なんで作り直したいのかまず聞くことだな
682:デフォルトの名無しさん
13/05/09 19:49:00.97
まあdoxygenとgraphvizで出力してみて、教授と相談すればいい
683:デフォルトの名無しさん
13/05/09 20:10:09.56
沢山の返答ありがとうございます!
doxygenというもの使ってみます!
作り直したい理由は、企業からそのツールが欲しいと言われたが今の何て出せるもんじゃないといった理由らしいです
あとは、前提として対応してこなかったものに対して対応できることがわかり、そのためには大幅な改変が必要だからと言った理由です
先生に相談してみます!
684:デフォルトの名無しさん
13/05/09 20:14:51.00
言っておくけど、君じゃ4年かかっても無理だよ
685:デフォルトの名無しさん
13/05/09 20:19:18.17
っと馬鹿が申しております
686:デフォルトの名無しさん
13/05/09 20:21:23.35
>>683
学生が作ったものだからひどいですよwww
って言いながら企業に渡して、企業にリファクタしてもらえ。
当然リファクタ後の使用権と改修権は企業からもらう契約にしてな。
おまえじゃ無理。
687:デフォルトの名無しさん
13/05/09 20:29:02.38
ゲー専のバカじゃ無理だからな
文章からしてゲー専
688:デフォルトの名無しさん
13/05/09 20:30:19.13
ゲー専の学生ならきれいなコード書くんじゃないの
そもそも専門の教授ってなんだよ
689:デフォルトの名無しさん
13/05/09 20:34:28.76
広域変数を動的にメモリ確保ってできる?
690:デフォルトの名無しさん
13/05/09 20:35:23.76
>>689
動的に確保したメモリを広域変数に割り当てればいいんじゃね?
691:デフォルトの名無しさん
13/05/09 20:52:00.97
>>690
サイズ不定なので不可能です
692:デフォルトの名無しさん
13/05/09 21:00:06.32
malloc calloc realloc
693:デフォルトの名無しさん
13/05/09 21:00:32.60
char *kuso;
main()
{
kuso=malloc();
}
694:デフォルトの名無しさん
13/05/09 21:03:39.58
このmallocが実行されたらどのようにメモリが確保されるから知らない無能ゲーム専門
早く死んだほうがいいよ
695:デフォルトの名無しさん
13/05/09 21:08:56.90
alloca malloca valloc
696:デフォルトの名無しさん
13/05/09 21:19:49.13
クソコードだけど動くわな
free忘れんなよ
697:デフォルトの名無しさん
13/05/09 21:25:35.95
>>683
ソース整形も忘れずに。cならindentコマンドでもいける。
既存動作と比較できるツールも作る必要があると思うので、その分のスケジュールも相談するの忘れずに。
あと、可能なら既存動作を保証できるようにテストを先に作ってから修正始めた方がいい。
よくわからないものを修正するときはその方があとで楽。
698:デフォルトの名無しさん
13/05/09 21:45:15.35
>>693
初心者に嘘教えるのが未だに居るな。
699:デフォルトの名無しさん
13/05/09 21:52:40.26
もうC諦めてC++にしろ
700:デフォルトの名無しさん
13/05/09 21:57:43.82
>>698
それは聞き捨てならんな
・グローバル
・サイズ不定
というオーダーを満たしてやったうえ
変数名に心を込めたんだぞ
701:デフォルトの名無しさん
13/05/09 22:23:18.69
>>700
引数くらい書けや
702:デフォルトの名無しさん
13/05/09 22:59:19.13
>>701
どうでもいいことで煽るなよ。
703:デフォルトの名無しさん
13/05/10 00:29:43.30
array=malloc(sizeof(int)*n*2)で確保したものって
array[n][n]みたいな使い方できる?
型はint
704:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/05/10 00:39:13.37
>>704
それで良いです
ありがとう
706:デフォルトの名無しさん
13/05/10 13:44:44.96
あ
707:デフォルトの名無しさん
13/05/10 13:48:24.87
内部結合
他のモジュール内部を直接参照したり、一部を共有する。
URLリンク(mt-net.vis.ne.jp)
ってあるけどCで書くとどんな感じ?
708:デフォルトの名無しさん
13/05/10 14:45:53.05
>>707
普通の関数コール
709:デフォルトの名無しさん
13/05/10 14:53:39.27
>>708
それはデータ結合と違うの?
引数渡すのがデータ結合らしいけど>>708の関数コールもデータ結合と同じじゃない?
test(a,b,c);みたいに引数送るときに呼び出してるし
関数コールって引数渡さずに関数だけ実行?
よくわからん
710:デフォルトの名無しさん
13/05/10 15:00:15.67
>>707
localtime
strtok
711:デフォルトの名無しさん
13/05/10 15:01:04.13
データ結合:引数に値渡し
スタンプ結合:構造体を渡す
制御結合:制御にかかわる引数を渡す、渡す先のモジュールのif文なのどのflag
外部結合:別モジュールのグローバル変数を参照
共通結合:別モジュールのグローバルな構造体を参照
内部結合だけがよくわからん
>>708>>710の単語じゃわからない
712:デフォルトの名無しさん
13/05/10 15:11:05.86
データ結合はファイルとかDBを介する奴じゃないの