- 1 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 16:10:55 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.68【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1253193779/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
- 552 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:36:35 ]
- >>550
このwebサイト収集するやつは、zip追記してます。 でもC言語でやってないです。 www.unixuser.org/~euske/python/webstemmer/index-j.html
- 553 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 14:01:44 ]
- >>550
外人がいいやつ作ってくれました。 これで追記出来ました。 www.wischik.com/lu/programmer/zip_utils.html
- 554 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:19:57 ]
- >>548
> doubleを使っておくのが無難。 それは微妙。どっちが向いてるのか考えるべき。ちょっと考えれば大体正解が選べるし。 例えば、APIがfloatを要求してるような場合はfloatが無難。 floatは精度に注意、floatとdoubleを無駄に混在させるのはアホ、SSEでは圧倒的に速度 が違う、SSE使わないならほんの僅かにfloatが速い、くらいであとは自己判断かな。
- 555 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:10:20 ]
- 混在を避けるのは鉄則。doubleの演算速度よりも、float⇔doubleの変換の方がよっぽど遅い。
- 556 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:12:50 ]
- >>555
え?
- 557 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:14:14 ]
- 下のようにvectorの入った構造体があります。
typedef struct { std::vector<int> foo; std::vector<float> bar; } HOGE; これを値渡しすると、各vectorのコピーコンストラクタはちゃんと呼ばれるんでしょうか。
- 558 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:17:36 ]
- >>556
それも環境次第だとは思うけど、少なくとも整数の符号拡張みたいに単純にはいかない。 フォーマットの変換が必要だから。 x86のFPUだと相当なコストがかかるけど、SSEなんかだとどうかは知らない。
- 559 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:24:57 ]
- >>557
ヒント : C++では基本的にclass と struct は同等の扱い デフォルトのprivateとpublicが違うだけ
- 560 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:13:15 ]
- >557
ヒントより短い答え:呼ばれます。
- 561 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:03:45 ]
- そんな巨大になりそうなもの値渡しして欲しくないな
- 562 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:24:42 ]
- 大丈夫
俺のちんこよりは小さいから
- 563 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:50:31 ]
- >>553
よく読めてないけど、オンメモリで展開、追加、圧縮をやってるんじゃないの?
- 564 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:55:53 ]
- >>561
新人「大丈夫ですよ先輩。sizeofで見たらたった80バイトです」
- 565 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:00:20 ]
- ああそうだ、俺のコンパイラは構造体に巨大な配列を入れて
値渡しすると馬鹿みたいにpushの荒らしになる rep movsが使えないのはpushが逆順になるからだろうな それなら簡単なループ組んで転送すればいいと思うのに pushを配列数分吐くもんだからexeが巨大になって馬鹿みたい
- 566 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:00:29 ]
- >>563
追記は新規に作ったファイルだけだった 既存ファイルには追記できなかった 追加しようとしたらデータ初期化されたよ
- 567 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:09:08 ]
- zipフォーマットここに書いてあるから追記自分でやってみるか
www.tnksoft.com/reading/zipfile/arczip.php www.tnksoft.com/reading/zipfile/nonarc2.php
- 568 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:17:40 ]
- もう一度いうけど、tarならできるだろうけどzipは無理だと思う。
無圧縮zipならできるかな
- 569 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:20:34 ]
- 100個のファイルを圧縮したzipを用意して、それを展開して、一つファイルを増やして、
圧縮して、バイナリ比較して、「追記」が実現可能かどうか見てみたら。 無圧縮でもそれやってみたら。
- 570 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:30:05 ]
- 駄目な理由はなんだ>
絶対出来るはず
- 571 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:25:11 ]
- rep movsとか最近のコンパイラは間違っても使わないような
- 572 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:39:47 ]
- サイズ重視のコードなら使う
- 573 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:11:52 ]
- 俺のコンパイラは断りもなくmemcpy呼んでるな。構造体の初期化には勝手にmemset使うし。
- 574 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:18:32 ]
- >>573
それで何か問題でも?
- 575 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:23:41 ]
- >>571
変数の初期化に使われているよ 特に配列だと間違いなく出てくる
- 576 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:34:11 ]
- そもそも構造体の値渡しが必要な状況ってどんなの?
ポインタや参照が使えない状況ってのが思い浮かばない。
- 577 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:55:20 ]
- 逆に考えるんだ。ポインタでは困る場面なんだよ。
それが必要な状況?それは↓
- 578 名前:デフォルトの名無しさん [2009/11/07(土) 03:36:48 ]
- ぬるぽ
- 579 名前:デフォルトの名無しさん [2009/11/07(土) 06:46:06 ]
- 再帰させるときなんかたまに使うけどね。
- 580 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 07:46:51 ]
- RECT rc = { 0 };
とかってありなの? VCだと中の変数ゼロになるんだけど
- 581 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 08:04:27 ]
- そうだよ
- 582 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 08:11:19 ]
- zip64の追記つくってくれ
- 583 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 08:15:20 ]
- 後半の情報フォーマット部分を追記データで
書き換えれば理論的には可能なはずなんだ。 でも正しいセットの仕方が判らない。
- 584 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 11:04:21 ]
- zipの仕様は公開されてるからそれに従って書けばいいと思うよ
www.pkware.com/documents/casestudies/APPNOTE.TXT
- 585 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 11:15:53 ]
- ファイルを個別に zip 圧縮してから tar でまとめるとか…
- 586 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:03:04 ]
- つか
追記くらいライブラリないのかよ
- 587 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:18:34 ]
- zipの構造はおおまかに
ファイルヘッダ 圧縮データ ファイルヘッダ 圧縮データ .... ファイルヘッダ 圧縮データ アーカイブインデックス(>>583のいう情報フォーマット部分) てなってるから最後の圧縮データとアーカイブインデックスの間に 追記のファイルヘッダと圧縮データを入れて アーカイブインデックスにも追加できればいける 7zとかcabなんかのソリッド圧縮形式だと LZ77の辞書とエントロピー圧縮のコンテキストが必要だから オンメモリでもいいから一度展開作業をしないと追記できない ちなみにJavaScriptで無圧縮zip作るひとがいるくらいだから 圧縮をzlibですればzipのフォーマット自体はそれほど難しくない
- 588 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:39:27 ]
- 作ってクレオ
- 589 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 14:08:45 ]
- パイロンだと、直書き出来る。
でも巨大ファイル(個数が100万とか)に追記すると解析に時間かかる。 パイロンのzip64の追記のソースをC++に書き換えられる人いますか。 パイロンの例 import zipfile z = zipfile.ZipFile("test.zip", "a", zipfile.ZIP_DEFLATED, True ) z.write("log_data.txt") z.close()
- 590 名前:589 mailto:sage [2009/11/07(土) 14:13:08 ]
- 実際に400M、50万ファイルのZIPファイルで実験したから間違いない。
コピーしたり展開したら時間かかるが、追記はコピーより速くできた。
- 591 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 14:49:15 ]
- c言語の話題かぁ?
- 592 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:25:07 ]
- struct Bar {
Bar(): x(m_x), m_x() { } Foo &x; private: Foo m_x; }; 初期化子の実行順序は、初期化子の順序ではなくて変数宣言の順序だと記憶していますが、 (例のコードではどちらにせよxが先だと思います。)上のようなコードを書くと、xの初期化から 始まって何物でもないm_xを参照してしまうはずなのにVisual C++のコンパイラは警告すら発し ません。 このようなコードは避けるべきということは言うまでもないですが、コンパイラがまったく順序に 関知しないというのはいかがなものでしょうか、と。
- 593 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:32:20 ]
- >>591
Zipは追記できないという説に対して ZipもZip64も追記できたと言うこと
- 594 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 17:13:59 ]
- >>592
嫌だったらC++使うなカス
- 595 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 17:14:59 ]
- VCで複数のソースファイルがある場合、プリプロセッサの処理順てどこで定義されているの?
例えば aaa.h, bbb.h, ccc.h の3つが互いにインクルードしている場合、 全体で使用できるためにはどのファイルで定義すればいいのかわからん
- 596 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 17:21:08 ]
- #includeした順に決まってるだろ
- 597 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 17:21:08 ]
- 何を言いたいのかわからないけど、
#includeはそこにテキストがそのまま展開される。 #include "aaa.h" #include "bbb.h" #include "ccc.h" なら aaa.h が真っ先に展開される。 しかし、非ローカルなスタティック変数の初期化順とかいう話になるのなら それはそれは難しいことに。 違ったかな。ほほほ。
- 598 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 17:30:31 ]
- 結局、「暗黙の初期化順に依存するな」ってことね。
- 599 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:04:33 ]
- #define #undef みたいにusing namespaceを無かったことにできないもんでしょうか
- 600 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:08:02 ]
- 逆に、using namespace を使うところだけスコープを切ればいい。
{ using namespace boost::lambda; // ここでbindとか_1とか使う } // ここでは using namespace は無効
- 601 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:10:36 ]
- みんなはusing namespace std;ってグローバルにおいちゃう派?おいちゃだめ派?
- 602 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:11:45 ]
- Google Coding Standardsではらめってなってた。
- 603 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:12:27 ]
- チーム全員がstd名前空間の全内容を把握しているなら
グローバルでもいいんじゃないですかね。
- 604 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:34:43 ]
- 同一プロジェクトでstd::stringとhoge::stringが混在したらそっちのほうがいやじゃない?
だからまとめて共通ヘッダに入れてグローバルusingしてる
- 605 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:37:12 ]
- いちいちstd::stringとかhoge::stringと書けばいいじゃない。
- 606 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 18:43:32 ]
- >>605
結構めんどくさくね?
- 607 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:01:18 ]
- WinAPI使ってるともっと長くてどうしようもない名前がわらわら出てくるから
あんまり気にしたことないなぁ。って言うか末尾にSEXついてるの多すぎ。 マイクロソフトの技術者はどんだけ欲求不満なのか、と。
- 608 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:01:19 ]
- 入力補完で切るエディタなら
std::と打ったほうが楽
- 609 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:06:03 ]
- >>607
sexわろたw 気にしたことなかったけど確かにそうだな
- 610 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:16:11 ]
- >>576
インライン展開を期待するときなんか、あえて構造体の値戻しを使ったりする。
- 611 名前:デフォルトの名無しさん [2009/11/07(土) 19:41:39 ]
- WIN32APIのSendMessageを使用する時、引数のwparamを文字列で渡す方法ってある?WinXPが環境です
- 612 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:43:12 ]
- とりあえず、グローバル変数の初期化順序に関しては、チューリングマシンの停止問題
みたいに定義不可能な面があるから、依存するな、とかEffectiveC++に書いてあった ような気がしなくもない
- 613 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:52:02 ]
- そこでシングルトンの登場ですよ。
- 614 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 20:01:16 ]
- シングルトンは俺的にはもうアンチパターンだな
Google的に、コンストラクタでは単純な初期化にとどめて、複雑な初期化はInit()で やれ、というコーディングを採用してれば、初期化順序で悩むことも無い気がする
- 615 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 20:17:49 ]
- 単豚
- 616 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 21:00:39 ]
- >>614
コンストラクタから初期化を追い出す必要は無いよ。 Init() 呼ぶくらいならグローバルなポインタに new すればいいじゃん。
- 617 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 22:58:31 ]
- ゼロオーバーヘッド的にはグローバルなポインタにnewするくらいならInit()呼ぶなぁ
- 618 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 23:26:56 ]
- operator newのオーバーロード(配置ではなくて)なんですけどグローバルにするのかstaticメンバにするのはどっちがいいんでしょうか?
- 619 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 23:31:20 ]
- 一緒。staticメンバは単にクラスのスコープの中に入っちゃうだけ。
- 620 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 23:36:58 ]
- >>618
追加の引数が無い奴はグローバルにすると全体に影響が出るから気をつけてな。
- 621 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:09:48 ]
- ありがとうございます
グローバルだと目的のクラス以外でもオーバーロードされてしまう staticメンバだと目的のクラスだけオーバーロードされる ということでしょうか。基本的にはstaticメンバにしたほうがよさそうですね
- 622 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:12:34 ]
- >>621
影響範囲については、だいたいそういうこと。 細かい話をすると、クラスの奴は派生クラスでも使われる。 あと、追加の引数が無い奴をグローバルに置くのはオーバーロードじゃなくて置き換え、な。
- 623 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:27:46 ]
- 基底クラスのポインタから派生クラスのポインタへのキャストって
dynamic_castは遅いけど変換不能な場合NULLを返す static_castは早いけど変換不能でも知らせてくれない これ以外の違いってなんかある?
- 624 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:34:01 ]
- その基底クラスが仮想関数を持たない場合、dynamic_castは使用できない
その派生クラスがその基底クラスを仮想継承している場合、static_castは使用できない (両方に当てはまる場合、どちらも使用できない)
- 625 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 19:45:51 ]
- >その基底クラスが仮想関数を持たない場合、dynamic_castは使用できない
マジすか初めて知った 確かにできてもあんまり意味はないけど
- 626 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 20:18:33 ]
- キャストしない暗黙変換が一番使いやすい。とか本末転倒なこと言ってみる。
HogeBase* hoge; Hoge2 *p = new Hoge2; hoge = p;//基底があってなかったらコンパイルエラー吐く。
- 627 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:46:58 ]
- dynamic_castが必要になるのは糞設計に仕方なく対応する時だけ
- 628 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:56:39 ]
- クロスキャストには必須だろ
- 629 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 02:49:46 ]
- クロスキャストしたい時点で糞設計になってるんじゃ?
- 630 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:04:02 ]
- >>629
違う クラスが複雑になるとクロスキャストしたい局面はよく現れる
- 631 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:04:46 ]
- ×クラスが複雑になると
○継承関係が複雑になると あ、継承関係が糞設計なんだろって突っ込みは無しな そういう事を言い出すとキリがなくなってしまうんで
- 632 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:24:18 ]
- そうは言っても、継承関係が糞設計なんだろ?w
- 633 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:49:06 ]
- >>632
ほうら来た だからそういう突っ込みは無し 人間そこまで完全な奴はいない 特にある程度プロジェクトが進んでしまっていると 今更設計を変えられない事も多い
- 634 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:55:13 ]
- 配られたカードがどんな悲惨でも
それで何とか勝負するしかないって事はあるだろう、仕事なら。
- 635 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 04:06:19 ]
- 結局>>627で全て終結していたわけか
- 636 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 04:06:54 ]
- 最初から「仕方なく対応する時」って書かれてるんだから、それは分かった上でだろう
- 637 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 04:14:02 ]
- 少なくともC++では、dynamic_castを使う必要が出てきた時点でほぼ糞設計。
糞設計をしてしまうことはあるし、気付いた時には引き返せないこともあるから、 使う時は使うべき。設計は変えられないが他の方法でどうにかしよう、というのは 最悪だから。 でも、そういう事態になったなら設計が糞だったんだ、という認識はすべき。
- 638 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 04:50:41 ]
- >>637
それは当たり前だろう そんな事はわざわざ言わなくても誰でもわかっている
- 639 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 04:58:39 ]
- つーかそれ以上の話をする必要を感じない
- 640 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 04:59:42 ]
- つーか>>628が要らんこと言ったのが悪い
- 641 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:38:14 ]
- シェア的にC/C++のコンパイラあげると上二つはVCとgccかなって思ってるんだが、
ベスト5ぐらいには他にどんなのがあるの?
- 642 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:54:09 ]
- >>641
ボーランドとかTurboとか
- 643 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:28:56 ]
- 当然 icc は入ると思う。
- 644 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 10:52:51 ]
- Code Warrierも入るな。間違いない。
- 645 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 12:31:11 ]
- じゃあ俺はLSI-C
- 646 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:03:07 ]
- codepad.org/kd2xzcnB
コードパッドのほうだと期待通りに動くんですけど 僕の使ってるコンパイラ(VC++EE2008)ではdelete[]が確保したサイズじゃなくてクラスのサイズを引き数に渡してしまいます これは規格で定まっていないんじゃなくて僕が使ってるのがただのクソッタレコンパイラということですか?
- 647 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:47:50 ]
- >>641-645
「シェア」の意味によって違ってくるだろうな。 使ってる人数か?コンパイルされたコードの走っている台数か? 商用に限るのか?学生の講義とかも含めるのか?日本なのか世界なのか? コンパイルされたコードの走ってる台数だとOSなんかも入って ちょっとナンセンスになるから、結局人数なんだろうけど。 そうすると組み込み系とかはそんなに多くないと思う。
- 648 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:56:12 ]
- >>646
size_tを引数にとるoperator delete[]なんて規格にあったっけ?
- 649 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:00:26 ]
- ああ、そうか。メンバ関数のほうはsize_tを引数にとるのか。
- 650 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:53:50 ]
- 関数を作っています。
int型の引数nに応じて、配列の大きさを決めたいのですが、コンパイルすると 「定数式が必要です」とのエラーメッセージが出て失敗します。 どうすれば私の意図する動作が可能になるでしょうか? int* getTest(int n, int o[], float r) { int p[n][2];// = new int[n][2]; //省略 return *p; }
- 651 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:17:15 ]
- mallocもしくはnewで調べれ
配列の大きさはコンパイル時に決定されなければならない。
- 652 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:38:07 ]
- >>650
配列の大きさを指定できるのは一番右側のoperator[]内だけ
|

|