- 1 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 20:07:56 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/
- 596 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 23:21:37 ]
- 理由のところ、教えてくれませんか
なんで()つけないとダメなのか。 というか中身にアクセスするときは()つけた方がいいんでしょうか
- 597 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 23:28:44 ]
- >>596
演算子の優先度
- 598 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 04:23:38 ]
- *po++ は *(po++) という意味だから、だな
- 599 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 04:48:37 ]
- 俺は演算子の優先度の表を暗記するだけの頭脳がないので、
決して、 *po++ ; なんてコードは書かない。 他人が書いたのを読まないといけないときは、優先度の表を見て確認する。 そもそも、後ろに++を付けるのは特別なときだけだし・・・。
- 600 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 13:39:19 ]
- *++p
- 601 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 13:40:46 ]
- ++(*po);
- 602 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 20:56:27 ]
- >>601
括弧イラネ
- 603 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 21:02:43 ]
- 優先順位覚えてないから付けといて
- 604 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 21:33:35 ]
- 左側に単項演算子二つで優先順位も糞もないだろ
- 605 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 21:52:24 ]
- むしろ全ての演算子を単項演算子にすれば頭で思い浮かべたものをキャレットを一々前後させずに一気に書ける
- 606 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 21:55:25 ]
- >>605
それって何て逆ポーランド記法?
- 607 名前:デフォルトの名無しさん [2007/10/28(日) 23:15:58 ]
- ★改行が多すぎと言われたので、何度かにわけます。
構造体Sのvectorがあって、SのメンバdoubleDataに関してfindをしようとしています。 (#include <algorithm>しています) struct S{ string strA; int intData; double doubleData; }; findを使っているところは、こんな感じです。 vector<S>::iterator it; it = find(VecTest.begin(), VecTest.end(), 1.7); cout << (*it).doubleData << endl;
- 608 名前:デフォルトの名無しさん [2007/10/28(日) 23:16:34 ]
- ★続き
Boland55で、以下のようなエラーが出ます。 エラー E2094 c:\Borland\Bcc55\include\algorith.cc 72: != 演算子が使われたがクラ ス S では double 型のための定義が存在しない(関数 find<S *,double>(S *,S *,const double &) ) 警告 W8057 c:\Borland\Bcc55\include\algorith.cc 75: パラメータ 'last' は一度も使 用されない(関数 find<S *,double>(S *,S *,const double &) ) 警告 W8057 c:\Borland\Bcc55\include\algorith.cc 75: パラメータ 'value' は一度も 使用されない(関数 find<S *,double>(S *,S *,const double &) ) *** 1 errors in Compile ***
- 609 名前:デフォルトの名無しさん [2007/10/28(日) 23:17:24 ]
- ★続き
ちなみに、以下のような演算子オーバーロードをしているのですが、 何がよくないのでしょうか。 bool operator == ( const S& left, const S& right ) { return left.doubleData == right.doubleData; } bool operator != ( const S& left, const S& right ) { return left.doubleData != right.doubleData; }
- 610 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 23:32:46 ]
- find には 1.7 じゃなくて S を渡さんといかんのでは?
- 611 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 23:34:03 ]
- struct has_double
{ bool operator()(const S& s, double d) const { return s.doubleData == d; } }; find_if(VecTest.begin(), VecTest.end(), has_double(1.7));
- 612 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 23:36:44 ]
- まちがった
struct has_double { double d; has_double(double d) :d(d) {} bool operator()(const S& s) const { return s.doubleData == d; } };
- 613 名前:デフォルトの名無しさん [2007/10/28(日) 23:44:17 ]
- >> 612さん
コンパイル、通りました!すごい!! でも全く解読できましぇん。 一語一句の意味をこれから勉強します。。。
- 614 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 23:55:56 ]
- >>612
テンプレート使って、 template<double value> struct has_double { bool operator()(const S& s) const { return s.doubleData == value; } }; find_if(VecTest.begin(), VecTest.end(), has_double<1.7>); ってのではダメ?
- 615 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 00:00:45 ]
- はは
定数だからね
- 616 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 00:13:48 ]
- もっと簡潔・明瞭に書く方法ないのかなぁ。
- 617 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 09:53:08 ]
- C++勉強しはじめてリファレンスを知って、
ポインタ使うよりずっといいじゃないですかって気分なんですが、 関数の引数としてリファレンス使うときに、 void hoge(int* out1, int* out2); //out2の出力が必要ない場合はout2としてNULLを渡す のような仕様はリファレンスでは実現できないってことなんでしょうか? 毎回ダミー変数宣言して渡すのも馬鹿らしいし。
- 618 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 12:44:05 ]
- >>617
どうしてもやりたかったらこういう手はどうだろう。 -- int dummyOut; void hoge(int & out1, int & out2 = dummyOut) { if (& out2 != & dummyOut) { out2 = someOutput; } } -- ダミーは必要だけど、毎回じゃないし使わないときは出力処理を回避することもできる。
- 619 名前:かぜひいてます←寝てろ mailto:sage [2007/10/29(月) 13:39:10 ]
- >>617
ダミー変数を渡すのがバカらしいのなら、ポインタ渡しのままでいいのでは? 参照は、結局ポインタ渡ししてるだけだから、組み込み型を渡すときはあまりメリットがない。 しかも、ポインタ渡しでも上手に組めば代入するのは1、2ヶ所だから読みにくくも無い。 俺のスタイルとしては、値を返すときは参照型ではなくポインタ渡し。 参照型が活きるのはクラス等を渡すとき。 void hoge(vector<char>& ref_v); void hoge(const vector<char>& ref_v); メンバアクセス演算子( . -> )がオーバーライドされてる場合でも深く考えなくともよい。
- 620 名前:619 mailto:sage [2007/10/29(月) 13:44:56 ]
- >>618
それも一応考えてみた。他にもオーバロードって手もあるよね。
- 621 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 14:30:48 ]
- int val = 100;
val = val++; int result = val; このとき、result はいくつになりますか? また、処理系に依存せず、同じ値になりますか?
- 622 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 14:44:58 ]
- >>621
www.kouno.jp/home/c_faq/c3.html#3
- 623 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 14:47:49 ]
- >>622
おぉ。ファック。 なんてこった。 ありがとう。
- 624 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 14:57:30 ]
- ファックしてもいい?
- 625 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 00:59:37 ]
- >>572
超遅レスで申し訳ない。 VB自体は糞というわけではないのか。。 もし、また改めて勉強するとするならば、VisualC++とVisualC#はどちらがお勧めですか? もちろんどんな物を作るか、目的は何か、ってのが決まっててこそ選ぶのかもしれないけど、 もし、将来性等考えたらどっちになります??
- 626 名前:デフォルトの名無しさん [2007/10/30(火) 01:01:04 ]
- VisualC#
- 627 名前:625 mailto:sage [2007/10/30(火) 01:06:12 ]
- 検索したらいっぱい出てきたんでとりあえず色々眺めて決めます。
・・とおもったらレスがついてた。 >626 なぜですか?よかったら教えてほしいです。
- 628 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 01:26:32 ]
- 自動車に例えるなら、
C# → トヨタ自動車本社の設計技術者 C++ → トヨタに部品を収めている協力会社の設計技術者 そういう感じ。
- 629 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 01:41:21 ]
- …え。
- 630 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 06:09:37 ]
- C# → Windowsユーザー
C++ → マイクロソフト
- 631 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:29:36 ]
- >>628
確かに C++ の方がスキルが必要だから間違ってないね。
- 632 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:36:13 ]
- .NET Frameworkって「のり」があるからC#, C++, F#とどれも使えるのが一番だね
状況に応じてシームレスに言語を選択できる開発環境ってのはかなり美味しいだろう さらにPowerShellスクリプトも使えば窓も*nix系に匹敵するかなり強力な環境になると思う
- 633 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:24:06 ]
- んじゃ、
C→町工場の工員 こんなかんじか?
- 634 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:09:12 ]
- C→拡張しすぎてわけがわからなくなった、おじいちゃん技術者
- 635 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:43:19 ]
- 質問させてくださいー・・・。
Visualstudio2005のC++でCのソースをコンパイルしているんですけど、 off_t strip_offset, data_offset, curve_offset; off_t thumb_offset, meta_offset, profile_offset; の2行で構文エラーって出るんです。 error C2061: 構文エラー : 識別子 'strip_offset' error C2061: 構文エラー : 識別子 'thumb_offset' ココだけ見てもわかんねーよって感じでしょうか・・・。 なんとなく原因が雰囲気でも分かれば教えてください。
- 636 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:47:08 ]
- >>635
off_tのtypedefを探して貼れ
- 637 名前:635 mailto:sage [2007/10/30(火) 16:11:04 ]
- レスありがとうございます。
typedef、存在しないみたいです。 設定しなきゃ駄目ですか?
- 638 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:14:16 ]
- typedefが存在しないわけがなかろう。
off_tは予約語じゃないぞ。
- 639 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:16:33 ]
- それか、struct off_t strip_offsetとして使うべきものかも。
- 640 名前:635 mailto:sage [2007/10/30(火) 16:21:06 ]
- >638
off_t、ココにしか出てこない上にtypedefってのも無いんです。 元々Linux用(?)に書かれたソースらしいんですけど、そっちではちゃんと動いているみたいなんですけど・・・。 すみません、いまいちよく分かってなくて。とにかくtypedefしなきゃ駄目って事でしょうか。 >639 struct off_t strip_offsetみたいにしてみたんですけど、、エラーが出ちゃいますね・・・。 「error C2079: 'strip_offset' が 未定義の struct 'off_t' で使用しています。」 だそうです。
- 641 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:26:44 ]
- >>640
じゃあそのソースがインクルードしているソースやヘッダを 全部調べてoff_tの定義を調べるべきだな。
- 642 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:28:04 ]
- もしかしたらtypedefではなく#defineかもしれない。
- 643 名前:635 mailto:sage [2007/10/30(火) 16:33:32 ]
- >614
インクルードされているファイルって言うと#include <winsock2.h>みたいなやつですよね? 全部調べていくのはちょっと自分には難しいかもしれません。 そっちに原因があるということだったら、コンパイラを変えてみると何とかなるかも、ですか? MinGWとかでコンパイルできるか試してみます! >642 #defineもありませんでした。>635に書いた2行以外のどこにも出てこないんです。
- 644 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:34:14 ]
- #include <sys/types.h>
- 645 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:38:35 ]
- >>643
off_tでぐぐるぐらいの事はしてみたよな?
- 646 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:38:56 ]
- typedef long off_t;
- 647 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:40:53 ]
- >>635
検索を使ってちゃんと探してみたか? 俺は自分の環境で探してみつかったぞ。 しかも難しい定義でもなんでもなかったぞ。 答えは言わない。自分で環境全部きちんと探して。
- 648 名前:647 mailto:sage [2007/10/30(火) 16:45:36 ]
- 答えでちゃったね。
VS C++のファイル検索使えば全検索でも何分もかからないのに。 いずれ仕事にするならそれぐらいはきちんと覚えておいて。
- 649 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 17:01:56 ]
- >644
その記述を入れたらoff_tに関してのエラーは出なくなりました!ありがとうございます。 >645 ググって、検索結果のページも色々参照させてもらったんですけど、なにぶんCそのものについての知識がなさ過ぎて・・・。すみません。 >646 その記述を入れてもoff_tに関してのエラーは出なくなりました!ありがとうございます。 >647 ありがとうございます。皆さんに助けていただいてひとつ前に進めました。 まだエラーが出てるんで先は長そうでけど・・・。
- 650 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 20:50:14 ]
- 理解しないで使うには危険な言語だと思うぞ。
- 651 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 12:14:47 ]
- >>649
「その記述を入れたら出なくなった」じゃなくて、 なんでエラーが解消できたのかを知っておかないと これから先苦労するぞ。
- 652 名前:デフォルトの名無しさん [2007/10/31(水) 18:09:26 ]
- Win32環境+VS2005で開発を行っています。
ダブルクリックでファイルを開く処理に対応させようと頑張っていた所 Debugビルドでは成功したのですが、Releaseビルドにするとファイルを開かなくなりました。 (でもショートカットに開きたいファイル名を指定するとReleaseビルドでもきちんと開く) そこで処理を追っていくと、どうもInitInstanceメソッドが呼び出されていないようなのですが、似たような経験をされた方はいらっしゃらないでしょうか?
- 653 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 18:11:41 ]
- スレ違い
- 654 名前:652 [2007/10/31(水) 18:27:32 ]
- 了解しました、他スレに流れてきます。
- 655 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 18:59:54 ]
- グリッド状に3次元ボクセルが並んでいる座標を格納したファイルがあって
0 0 0 1 0 3 5 20 9 …(順番はメチャクチャ) ttp://up2.viploader.net/upphp/src/vlphp083780.jpg こういう感じに1層だけ取り出して計算処理。 終わったらその上の層だけ取り出して計算処理 ということをしたいのですが これって for(slice=0,slice<MAX;slice++){ while(fscanf(fp,"%d%d%d\n",x,y,z)!=EOF){ array[x][y][z]に層を格納 } 格納した層について計算処理 } という風に、計算したい層を取り出すために、毎回ファイルを読み込むという賢くない処理をしなくてはならんでしょうか もう少し賢いやり方をしたいのですが、アドバイスいただけませんか。
- 656 名前:デフォルトの名無しさん [2007/10/31(水) 19:28:37 ]
- kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5186.txt
これに実験結果を入れたいのですが、どこに入れたらいいか分かりません。 教えてください。
- 657 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 19:30:04 ]
- >>656
コンパイルして、./a.out 実験結果 とでもすればいいだろ。
- 658 名前:wolf ◆8VH3XAqjlU mailto:sage [2007/10/31(水) 21:09:30 ]
- >>655
For your Reference. Managing Memory-Mapped Files in Win32 msdn2.microsoft.com/en-us/library/ms810613.aspx Beej's Guide to Unix Interprocess Communication(Ref. Memory Mapped Files) www.ecst.csuchico.edu/~beej/guide/ipc/
- 659 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:47:11 ]
- >>658
thanks for your advice but I don't mention accessing memory and that code was rough. so I have some mistake
- 660 名前:デフォルトの名無しさん [2007/11/01(木) 01:31:10 ]
- 「派生クラスのインスタンスを生成する時、newで生成しないと使えない」
と言われたのですが、何でなのかわかりません。 親クラス* p= new 子クラス; p->なんか関数(); これしか方法はないんですか?
- 661 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 01:39:13 ]
- >>660
そんな事はない
- 662 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 05:49:28 ]
- >>655
データ量にもよるが・・・ ファイルの読み書きと計算処理を分離し、 データはすべてメモリに読んでしまい、 計算処理はメモリ上にあるデータに対して行う。 いくつもの計算処理を済ませた後に、 メモリからファイルに書きだす。
- 663 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 10:38:55 ]
- 子クラス kokurasu;
親クラス* oyakuasu = &kokurasu; oyakurasu->NFunction();
- 664 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 16:13:54 ]
- >>662さん
レスありがとうございます。 小さいデータ量なら3次元配列に読み込んでしまえばいいのですが 量がメモリの容量を越えてしまうくらい大きいので… 2048×2048×2048の大規模なものや、それ以上を想定しています。。。 メモリに乗り切らない→1層ずつ処理→そのためには? という考えからきています
- 665 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 16:34:53 ]
- ファイルを何度もスキャンするくらいなら、
物理メモリに乗らないような巨大なサイズでも、 仮想記憶を使ってメモリ上に読んでしまったほうがマシかもよ。
- 666 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:00:46 ]
- >仮想記憶を使ってメモリ上に読んでしまったほうがマシかもよ。
仮想記憶で扱うということはこれまでやったことが無くて。 どこかわかりやすく参考になるところありますか?
- 667 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:02:15 ]
- >>666
ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E8%A8%98%E6%86%B6
- 668 名前:デフォルトの名無しさん [2007/11/01(木) 17:15:27 ]
- 教えてください。
(Aが1)、かつ(Bが2)以外に処理を実行するっていう場合どう記述したらいいんですか? if((A==1)&&(B==2)){ } else{ 処理 } でいいのかなぁ?
- 669 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:17:15 ]
- ありがとうございます。
だいぶ難しそうな気配がしています。。。
- 670 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:19:27 ]
- if( (A!=1)&&(B!=1) )
処理 でいんでない
- 671 名前:よろず [2007/11/01(木) 17:21:39 ]
- 募集してるよん♪
bloom@geocities.co.jp
- 672 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:22:21 ]
- if((A!=1)||(B!=2))
{ 処理 }
- 673 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:22:36 ]
- よくねぇよ
- 674 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:23:05 ]
- >>668
ド・モルガンの法則でひっくり返せ。 A != 1 || B != 2
- 675 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:23:24 ]
- >>668
if( !(A==1 && B==2) ) { 処理 }
- 676 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:23:40 ]
- 更新してなかtったorz
- 677 名前:デフォルトの名無しさん [2007/11/01(木) 17:23:51 ]
- ありがとう || でやってみます
- 678 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:24:41 ]
- >>666
高々GiBオーダだろ。普通にmalloc()したらOSが勝手に確保してくれて、使うときに勝手にスワップアウトしてくれるよ。 OSがタコじゃなきゃ。
- 679 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:26:13 ]
- WindowsXPはタコですか?
- 680 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:26:41 ]
- >>677
果たして、>670で「(Aが1)、かつ(Bが2)以外」と読めるか? if (!(A == 1 && b == 2)) { 処理 } の方が読みやすいかも知れんぞ。 # ド・モルガンの定理を知らん香具師がメンテナンスするかもしれないんだし。
- 681 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:28:59 ]
- 「(Aが1以外)且つ(Bが1以外)」と読める
- 682 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:29:48 ]
- どっちも同じようにしか見えない俺は眼が腐ってる
- 683 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:30:11 ]
- だね
- 684 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 17:49:50 ]
- 「(Aが1以外)且つ(Bが1以外)」じゃないの?
- 685 名前:デフォルトの名無しさん [2007/11/01(木) 17:52:10 ]
- if( !(A==1 && B==2) ) {
処理 } こういう記述もできるんですね みなさんありがとう 勉強になりました
- 686 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 18:25:35 ]
- >>680
読みやすさとかより !(A == 1 && b == 2)) と (A!=1)&&(B!=1) は別物なんだが。
- 687 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 18:30:38 ]
- そりゃそーだ
Bの値が違う
- 688 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 18:47:54 ]
- >>678
ためしにmallocで 1024 1024 1024 を確保して解放しただけで仮想メモリの警告が出ましたが 確保をしているような感じでした。 ただ、合計4GBくらいになるはずのものが2.5GBで解放されたのが気になりますが。。。 もう少し別のやり方調べてみます。。。
- 689 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:12:47 ]
- >>688
Windowsの32ビットアプリケーションは、 3GiBオプションを付けない限り、ユーザアドレス空間2GiBしかないよ。 その2GiBをプログラム本体や、WindowsのDLL、スタックを差し引いた残りが、 およそmallocほか動的メモリ確保で使用できる領域になる。 それ以上使いたければ、64ビット化するか、2GiB未満に小分けして処理する必要がある。 いずれにせよ、同じ仮想記憶を使うのでも、 単純にmallocでメモリを確保するよりは、メモリマップドファイルにしたほうがいいと思う。
- 690 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 20:02:10 ]
- >>687
それだけ?
- 691 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 20:34:15 ]
- うぜ
- 692 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:00:13 ]
- >>689
動的メモリになると2GBの壁がでるのですね… それだと必然的に1024^3はムリになるので、目的のは出来ないかもしれません ファイルにランダムアクセスできればいいのですが… それかファイルをソートする方がはやいのかも
- 693 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:05:34 ]
- >>692
ランダムアクセスはできるよ テープじゃないんでしょ
- 694 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:07:58 ]
- テープですよ
ランダムアクセスはできるけど
- 695 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:17:07 ]
- >>692
流れをあんまり理解してないけど、 ファイルにランダムアクセスってfseekとかその手の話?
- 696 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:19:59 ]
- まさか数GBのファイルを全部メモリに読むつもりとか
|

|