- 1 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:26:08 ]
- エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.40【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1184717430/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 652 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:46:24 ]
- >>650
知ってるかもしれないが、JISの規格書なら以下で参照できる。 日本工業標準調査会 ttp://www.jisc.go.jp/index.html C JISX3010 C++ JISX3014 検索できないのは最悪だけど。
- 653 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:49:36 ]
- >>651
調べ物するときは同じ内容について 色々な本に目を通してるんだけど、 結局、規格書に明記されてると確信に変わる んで安心できる 禿の本ってEffectiveのこと? 結構高度だから必要に応じて関連する項目を 潰していこうと思ってる
- 654 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:52:34 ]
- >>652
最初、Cの規格書もそこを見てたんだけど 検索できなくて疲れるから買ってしまった
- 655 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:59:44 ]
- 禿本 : Bjarne Stroustrup著 プログラミング言語C++
- 656 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 23:52:51 ]
- >>650
代入式の結果が左辺値か右辺値かは、構文から 決定できる問題ではないので、構文を記した部分は関係ないぞ。
- 657 名前:デフォルトの名無しさん [2007/08/26(日) 03:47:09 ]
- class Hoge{private:vector<CFoo> m_vecFoo;};
Hoge::Hoge(){ //落ちる場合1 CFoo foo = CFoo(age,sage); m_vecFoo.push_back(foo); //落ちる場合2 CFoo foo; foo = CFoo(age,sage); m_vecFoo.push_back(foo); //落ちない場合 CFoo* foo = new CFoo(age,sage); m_vecFoo.push_back(*foo) } あるクラスCFooについて、newでインスタンスを生成した場合は落ちないんですが、 newを使わないで直接生成した場合(そういうのをなんていうのか知りませんが) push_backの行で落ちてしまいます。一応どの場合もコンパイルは通ってます。 原因がまったく分からないのでエスパーしてください^^;お願いします。 デバッグ結果:xutilityファイル内↓ inline void __CLR_OR_THIS_CALL _Container_base::_Orphan_all() const { // orphan all iterators _Lockit _Lock(_LOCK_DEBUG); if (_Myfirstiter != _IGNORE_MYITERLIST) { for (_Iterator_base **_Pnext = (_Iterator_base **)&_Myfirstiter; *_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter) (*_Pnext)->_Mycont = 0; ←この辺でとまってる模様 *(_Iterator_base **)&_Myfirstiter = 0; }
- 658 名前:657 mailto:sage [2007/08/26(日) 03:53:14 ]
- //さらにもう一個、落ちる場合
CFoo foo(age,sage); m_vecFoo.push_back(foo); ちなみに、push_backをコメントアウトして飛ばせば一応落ちないで動いてるようなので 落ちているのはpush_backの行みたいです。
- 659 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 05:25:40 ]
- その「あるクラス」がどんなものなのか説明しろよ。
ちゃんとコピーコンストラクタでディープコピーしてるかとか。
- 660 名前:デフォルトの名無しさん [2007/08/26(日) 09:15:04 ]
- >>659
すいません。力尽きて寝てました。 実際のCFooはでかいのでそのまま貼ることはできませんが、 ・コンストラクタの引数にポインタ型がある ・メンバにもポインタ型がある ・引数つきで生成されること前提なのでデフォルトコンストラクタとか作ってない ・唯一書いてある引数ありのコンストラクタは、メンバを初期化リストで初期化せずに コンストラクタの中身で初期化してる ・単純なGet〜みたいな関数はヘッダに直接書いてある この辺がなにか関係してるでしょうか?
- 661 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:36:45 ]
- レスに間が空いててもいいが、わざわざ寝てましたなどと言わなくていい
- 662 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:39:42 ]
- レスに間が空いててもいいし、わざわざ寝てましたなどと言ってもいい
- 663 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:43:44 ]
- >>660
>659の質問に答えたまえ。 コピーコンストラクタを設けていないのなら、C++を初歩から勉強しなおせ。
- 664 名前:デフォルトの名無しさん [2007/08/26(日) 09:51:36 ]
- ディープコピーって何ですか?
- 665 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:28:29 ]
- 本読め
Effective C++とかEffective STLとか
- 666 名前:657 mailto:sage [2007/08/26(日) 10:35:13 ]
- なんかポインタのメンバとかもってたりするクラスは
コピーコンストラクタなるものをきちんと実装しないと 値渡ししたりするときに問題が発生しやすいらしいので m_vecFooにはポインタを渡すことにしました。
- 667 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:38:42 ]
- 参照を参照のままコピーするのが浅いコピー
参照先を複製してコピーするのが深いコピー
- 668 名前:デフォルトの名無しさん [2007/08/26(日) 10:52:14 ]
- コピーコンストラクタを実装してなかったことが原因な気がしてきてはいるのですが
なぜpush_backの段階で落ちてるんでしょうか? 二重でdeleteされてるわけでもないし、理屈がわかりません。
- 669 名前:デフォルトの名無しさん [2007/08/26(日) 10:52:28 ]
- ディープキスって何ですか?
- 670 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 10:56:26 ]
- 保育園でするもの
- 671 名前:657 [2007/08/26(日) 10:59:13 ]
- >コピーコンストラクタなるものをきちんと実装しないと
>値渡ししたりするときに問題が発生しやすいらしいので 訂正ですが、ポインタのメンバを持ってるクラスの コピーコンストラクタをきちんと実装してない場合、 ”値渡しする段階”で問題がでるのではなくて、 ”後始末の段階”で二重のdeleteが起きたりするので危険なんですよね? なんでpush_backしただけで落ちるんでしょうか? どんな可能性が考えられますか?
- 672 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:10:13 ]
- とりあえず、デバッガで
本当に push_back の行で落ちてるのかどうか確認してみた方がいいんじゃない?
- 673 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:13:40 ]
- >>671
CFoo foo = CFoo(age, sage); CFoo bar = foo; とりあえずこのコードで落ちたりしないか?
- 674 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:23:30 ]
- あと、
>CFoo foo; >foo = CFoo(age,sage); これをちゃんと動かしたいなら、代入演算子も定義しとけ。
- 675 名前:デフォルトの名無しさん [2007/08/26(日) 11:38:52 ]
- >>672>>673
CFoo foo = CFoo(age, sage); CFoo bar = foo; としたらpush_backをコメントアウトしても落ちました。 ってことはやっぱりコピーコンストラクタなるものが きちんと実装されてないのが原因っぽいです。 でも実装してないときはコンパイラが勝手に作ってくれるんじゃないんですか? で、勝手に作られたものでは”破棄時”に問題がでるので、 自分でうまく実装しないと危険ってだけなんじゃないんでしょうか?
- 676 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:39:52 ]
- >>671
それはもちろんだが、その前に、解放済みの動的資源を参照するオブジェクト ができてしまうことがマズイだろ
- 677 名前:657 [2007/08/26(日) 11:43:25 ]
- あぁ、なんかコピーをした段階で落ちてるんじゃなくて、
一時オブジェクトが解放される段階で落ちてるみたいです。
- 678 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:44:10 ]
- >>656
式の結果が左辺値になるか右辺値になるかは構文ではなく 言語の仕様ということか それなら黙って認めるしかないから明白だ
- 679 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:47:02 ]
- >675
>自分でうまく実装しないと危険ってだけなんじゃないんでしょうか? その「危険」の内容が、落ちるってことだ。
- 680 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 11:49:39 ]
- 誰かスレッドについて教えてくれ。
自プロセスのスレッド数を CreateToolhelp32Snapshot、Process32First、Process32Next 使ってスレッド数を出力するだけのプログラムで なんでcntThreadsの値が8になるんだ? CreateThreadとかしてないのに・・・
- 681 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:00:10 ]
- 知らんけど、システム的なDLLの誰かが作ったスレッドなんじゃない?
- 682 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:09:32 ]
- >>680
お前がアホだから
- 683 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:02 ]
- 純粋に自分の作ったスレッドの数のみを知る方法ってないのかな?
- 684 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:39 ]
- >>680
せめて ttp://www.microsoft.com/technet/sysinternals/default.mspx あたりのツール使って、実際のスレッド数をまず確かめてはどうか?
- 685 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:47 ]
- ある
- 686 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:53 ]
- 自分で作ったのなら自分で管理して数えればいいじゃん
- 687 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:27:41 ]
- ProcessWalkerを使ってみたんだが、やはり複数立ち上がってる・・・
確かに自分で数えればいいんだが、 パフォーマンスログでスレッド数見ると 自分で立ち上げたスレッド数以上立ち上がってて たまに増減するんだよね。
- 688 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:28:33 ]
- だから何だ?チラシの裏にでも書いてろ。
- 689 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:36:37 ]
- そりゃ裏でスレッドを作られったって、それはWin32の勝手だろうに。
- 690 名前:デフォルトの名無しさん [2007/08/26(日) 13:03:42 ]
- C/C++の文法自体は大体理解できたが、大規模なプログラムの作り方が
さっぱり分からん 大規模なものだと、だいたいフォルダごとに纏められていて総数数百、数千のファイルがあるが どのような感じでそんな構造をつくっていけばいいのかさっぱりです。 Webにはどこも同じような、内容ばかりポリモを動物を使っての説明w 結局みんな大規模なものはかけないのかな?
- 691 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:07:39 ]
- はは
- 692 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:09:43 ]
- >>690
大規模っつーことで複数人での開発を想定するが 個人的にはプロセスやDLL等の境界で切ってあるほうがずっとやりやすかったかな 切らないんなら、適切にスタブを作るのが常套かと思う Facadeなどの下に隠すのも良い 画面がいっぱいあるだけの良くある業務系なら、それぞれの画面に飛べるように なっていて、それぞれが独立していれば概ね問題は無い まあ所詮ケースバイケースで王道は無いだろ 「銀の弾丸はない」のだと知れ
- 693 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:10:03 ]
- 大規模なプロジェクトと動物ポリモとどういうつながりが?
- 694 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:20:38 ]
- >>687
オーディオデータとか動画扱ってる場合とかWindowsが勝手にスレッド作る場合はよくあるお
- 695 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:25:54 ]
- >>675
>でも実装してないときはコンパイラが勝手に作ってくれるんじゃないんですか? 各メンバのコピーコンストラクタを呼び出す、というコピーコンストラクタを作ってくれる。 同様に代入の場合は各メンバに対しoperator=を呼ぶ。 メンバにポインタがある場合ポインタがコピーされるだけで、ポインタが指す先は複製されない。
- 696 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:30:15 ]
- まーメンバがコピーコンストラクタが上手く動くクラスとポインタ以外の
基本型だけならデフォのコンストラクタで問題ないことも多い ポインタ生のままで保持せずにboost::shared_ptrでくるんだりしてれば 適切に参照カウント処理してくれる そうでないならちと考えろってこった
- 697 名前:デフォルトの名無しさん [2007/08/26(日) 13:31:27 ]
- >>693
私が言いたいのはWebで恰もC++知ってますみたいな講座書いてる奴の大半は 動物ポリモみたいなことかいてるだけで実用的なことは一切出来ないのかな? と思っただけですよ
- 698 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:33:05 ]
- しらねぇ
つーかどうでもいい 動物ポリモは確かにくだらねぇしオリジナリティはねぇな
- 699 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:37:16 ]
- 初心者の為に端折って説明してるだけなんだよ
- 700 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:39:50 ]
- あれで初心者が解るのか疑わしい
- 701 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:42:37 ]
- わからなかった?
精進するよ
- 702 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:44:29 ]
- >>697
動物ポリモみたいなこと書いてないで君もさっさと大規模なもの作れる頭持つか諦めなさい。
- 703 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:50:52 ]
- そうだね
スレ汚しすまそ
- 704 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:26:55 ]
- 逆に実用的でコーディング時の仕様に依存しないポリモーフィズムってなに
- 705 名前:デフォルトの名無しさん [2007/08/26(日) 14:30:57 ]
- まだ、いってんの?
C++ 講座 で検索してみなよ どこもおなじようなことしか書いてないからw
- 706 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:35:06 ]
- そりゃC++ 講座だもん
- 707 名前:デフォルトの名無しさん [2007/08/26(日) 14:41:55 ]
- 偉そうに書いてるわりには、実際に作ったソフトを公開してる人いないよね
実際はC++の文法だけしか理解できていない可能性高し
- 708 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:42:57 ]
- だからなんだよ?どうでもいいだろ?
チラシの裏にでも書いてろよ。
- 709 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:45:45 ]
- 有能だけどそこまで親切じゃない人もいるんだよ
- 710 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:54:36 ]
- >>707はアホそうに書いてるだけで、実際に作ったソフトを公開してないよね
実際はC++の文法ですら理解できていない可能性高し
- 711 名前:デフォルトの名無しさん [2007/08/26(日) 14:56:11 ]
- 大規模な開発なんて経験つんでやっていくものじゃないの
Webのしかも言語自体の解説に何期待してんだか
- 712 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:57:08 ]
- >>707
遊びの延長や使い捨てや自分専用で作るのと 公開するソフトを作るのではかかる手間が桁違いだろ
- 713 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:06:54 ]
- 公開ライブラリを作ってる人達の実力は底が知れない
具体的にいうとboost関係の人達
- 714 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:23:49 ]
- 知れるかどうかって話で言うと、何も公開していない人のほうが底が知れないね。
- 715 名前:デフォルトの名無しさん [2007/08/26(日) 15:25:40 ]
- >>713
そうか? 以前正規表現を使いたくてboostを使ったが速度でイマイチだったから 自前で実装したけど?
- 716 名前:デフォルトの名無しさん [2007/08/26(日) 15:30:47 ]
- >>715
そうか? 以前正規表現を使いたくてお前のを使ったが速度でイマイチだったから 自前で実装したけど?
- 717 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:32:20 ]
- どうでもいから出て行ってくれないかな。
- 718 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 16:38:43 ]
- boostはC++の実験場だから
チューニングはしてないよ
- 719 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 17:18:01 ]
- チューニングに関する実験でもチューニングしてないよ
- 720 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 18:59:25 ]
- boost::uniform_01< boost::mt11213b, float > rnd( boost::mt11213b( (unsigned long)(time(0)) ) );
oven::random_shuffle( vec, _1 * rnd() ); // std::random_shuffle( vec.begin, vec.end, _1 * rnd() ); std::random_shuffleの乱数生成関数オブジェクトにboost::uniform_01を使ってみたんですが なんかうまくばらけてくれませぬ というわけでstd::random_shuffle用のいい乱数発生方法を教えてください
- 721 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:48:44 ]
- Boostなんてたいしたこと無いだろ
これが一番典型的な例 ____ progress_ |← reject| boostの中の人 display ユーザー . ̄.|| ̄ ̄ ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=- || ┏┗ ┗┗ ┏┗ ≡=-  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
- 722 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:58:05 ]
- それがboostの典型なら、boostの中でrejectされたりしないだろう。
boostの中で平均的に評価されているものが、他との比較でreject扱いになって 初めて「boostなんてたいしたことない」になる。
- 723 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:35:06 ]
- progress.hppには
まるで役に立たないprogress_displayと すごく役に立つprogress_timerが同居しています そんな兄弟いますよね
- 724 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:18:30 ]
- Visual Studio .NET 2003環境の問題について教えてください。
アラビア語リテラルの入った.ccのソース(MySQL)のコンパイルが出来ません。 error C3209: '・ァル館・' : Unicode 識別子は現在サポートされていません。 というエラーが表示されます。(ソースUTF8の場合) 秀丸でShift-JISにしたり、UTF8にしたりしたのですが、どちらもエラーでした。 VSのエディターではShift-JISの場合、アラビア語が文字化けもなく表示されます。 (UTF8では文字化けして表示されます。) 2時間くらいググッても分かりませんでした。 この問題の解決法を教えてください。 エロイ人お願い!
- 725 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:21:48 ]
- >>724
VC が UTF-8 を認識できてないんだろ。どうやるのか知らんけど。 Shift_JIS でアラビア語が扱えないのは確実。
- 726 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:26:42 ]
- 英語版に言語パック入れたら?
- 727 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:29:28 ]
- BOMつきUTF-8ってVS2003で食えたっけ
VS2005なら大丈夫のはずだが リテラルはワイド文字なのか? そうだと仮定すると、ソース修正して 16進でUnicodeのコードポイントを記述してやるのが一番手早い Perlか何かを使えば簡単だろ
- 728 名前:724 mailto:sage [2007/08/26(日) 23:45:35 ]
- 素早いレス、感謝感激です。
>>725 アドバイス、d。 どこで聞けば分かりそうですか?ご存じでしたら教えてください。 オプションやらヘルプやら一通り見てみたのですが、分かりませんでした。 >>726 ちょっと難しそうです。d。 >>727 > BOMつきUTF-8ってVS2003で食えたっけ BOMつきかどうかを確認する方法をご存じでしたら教えてください。 > リテラルはワイド文字なのか? リテラルはワイド文字です。 確かにソース修正が一番簡単ですね。 ただ、ソースの下の方を見てみたら、ヒンディ語・ヘブライ語・・・と限りなく続いてますので、結構大変かも。
- 729 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:51:04 ]
- >>728
BOMを確認したければファイルの先頭をバイナリエディタで見てみろ。 BOMつきでなければ、VS2005でも食えない。 ワイド文字リテラルなら、話は簡単だな。 手でやらずに簡単なフィルタープログラムを書いて、機械的に変換してしまえ。 そんなら多国語でも関係ない。
- 730 名前:デフォルトの名無しさん [2007/08/26(日) 23:55:03 ]
- 助けて!以下のプログラムでメモリがおかしくなるお!
分母150 試行回数100000で繰り返すとなるお! 助けて! #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i,j,dom,cnt,max,ret,k; int ch; int array[128]; int over, less; long int times; i = j = k = dom = cnt = times = max = 0; printf("input dominator >"); scanf("%d", &dom); printf("input times >"); scanf("%ld", ×);
- 731 名前:730続き [2007/08/26(日) 23:55:39 ]
- LOOP:
k = 0; over = less = 0; while(getchar() != '\n'); printf("dominator = %d times = %d\n", dom, times); sleep(1); srand(time(NULL)); for(i=0; i<times; i++){ cnt++; ret = rand() % dom; if(ret == 7){ array[k] = cnt / 100; array[k]++; k++; array[k] = -1; printf("%d\n", cnt); if(cnt > max){ max = cnt; } if(cnt > dom){ over++; } else{ less++; } cnt = 0; } }
- 732 名前:730続き [2007/08/26(日) 23:56:15 ]
- for(i=0; array[i] != -1; i++){
for(j=0; j<array[i]; j++){ printf("*"); } printf("\n"); } printf("MAX = %d\n", max); printf("OVER = %d ELSE =%d\n", over, less); printf("%d/%d\n", over+less, times); printf("%f\n", times / (double)(over + less)); printf("Retry ? (y/n) >"); ch = getchar(); if(ch == 'y' || ch == 'Y'){ goto LOOP; } return 0; }
- 733 名前:730 [2007/08/26(日) 23:56:54 ]
- このままじゃパチンコで勝てないお!
助けてお!
- 734 名前:デフォルトの名無しさん [2007/08/27(月) 00:00:33 ]
- こんなプログラム書いて何になるの?
- 735 名前:デフォルトの名無しさん [2007/08/27(月) 00:01:41 ]
- >>734
>>733
- 736 名前:724 mailto:sage [2007/08/27(月) 00:01:41 ]
- >>729
ありがd。見てみたら、BOMついてませんね。 付けてオンパイルしてみます。ノシ
- 737 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:04:27 ]
- >>730
ざっとみだけど >int array[128]; が足りてないだけじゃないの?
- 738 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:06:54 ]
- >>730
メモリをケチるな! array[128] → array[2048] 期待値は (1/150)*100000=666.67
- 739 名前:730 [2007/08/27(月) 00:10:46 ]
- できたおおおおおおおおおお!
これで勝てるお!
- 740 名前:730 [2007/08/27(月) 00:11:55 ]
- 期待値の詳細希望
- 741 名前:730 [2007/08/27(月) 00:14:06 ]
- なるほどお!ボヌスが666.67回くるってことかお!
ありがとお!
- 742 名前:730 mailto:sage [2007/08/27(月) 00:17:43 ]
- やっぱりすごいお
さっぱりわからなかったのに すぐ回答がきたお どうしたらそうなれるかお?
- 743 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:20:17 ]
- >>742
毎日2時間、電灯のヒモでボクシング。これを1年続けること。
- 744 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:21:02 ]
- みんな半年から1年ぐらい
アーバンチャンピオンと スパルタンXで鍛えてるはず
- 745 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:26:58 ]
- >>740
100000回×(1/150)=666.67回 kがインクリメントされるわけだから array[k]はarray[668]って式で参照される可能性があるわけで array[128]と宣言したのではあきらかに足りないってことなんではないかと>期待値云々 こういう実行時に入力される値に依存するような大きさの配列はメモリの動的確保で扱うべきだとは思うけどね
- 746 名前:724 mailto:sage [2007/08/27(月) 01:39:46 ]
- >>736
ファイルの先頭にBOM(というか、ZERO WIDTH NON-BREAKING SPACE。ef bb bfの3バイト)を付加したら 無事、オンパイルできました。
- 747 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 01:42:28 ]
- >>746
いや、ファイル先頭にある場合、つまりBOMである限り、 それはBOMであってZERO WIDTH NON-BREAKING SPACEとは言わないんだ。
- 748 名前:724 mailto:sage [2007/08/27(月) 02:02:45 ]
- >>747
添削ありがd。 WikipediaのUTF-8(ja.wikipedia.org/wiki/UTF-8)のところに記述がありました。 > プロトコルが常にUTF-8である事を強制しているものである場合はBOMを禁止するべきで、 > この場合ファイル先頭のBOMは "ZERO WIDTH NO-BREAK SPACE" と見なされる。 > 逆にプロトコルがそれを保証しない場合BOMは禁止されずファイル先頭のそれはBOMと見なされる。(tools.ietf.org/html/rfc3629#section-6) 2文目ですね。
- 749 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 10:40:28 ]
- www.vista-osx.com/kensaku.htm
- 750 名前:デフォルトの名無しさん [2007/08/27(月) 15:06:25 ]
- ヘッダファイルの書き方について質問です。
自分で複数ファイルのプログラムを作ったとき、 たとえば、mian.c , sub.c , sub.h という3つのソースファイル からなるプログラムの場合、 $ gcc main.c sub.c としますよね。 でも#include<stdio.h>などでは、 stdio.hにはプロトタイプ宣言しか無くて、printf( );とかの定義が無いはずなのに $ gcc main.c stdio.c などとしなくてもいいのはなぜですか?
- 751 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:09:05 ]
- パス通ってるからじゃないん?よーわからんけど
- 752 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:11:52 ]
- 引数で指定しなくてもリンクされるようになってるから。
|

|