- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:35:36 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/
- 809 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:45:37 ]
- C/C++というよりLinuxの質問になってしまうのですが、
mq_sendとmq_receiveでメッセージキューのパラメータに 任意の構造体を渡すことはできますでしょうか? 関数仕様ではchar*のみのようですが。 メッセージキュー以外の方式で別プロセスに任意の型の 値を渡す代替案があればそれでも良いのですが。
- 810 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:10:40 ]
-
mmapとかpipeとか プロセス間通信は、Linuxの方で聞いた方がいいかもね
- 811 名前:デフォルトの名無しさん [2009/06/09(火) 16:13:22 ]
- 使ったこと無いけど
文字列にシリアライズして渡すんじゃねーの そんな雰囲気のある関数っぽい
- 812 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:07:30 ]
- >>809
昔は, 任意のバイト列に対するポインタは char* を使っていた で, 関数使用はその名残だと思うんだわ # kernel 内部の caddr_t とかの絡みもあるとは思うが……… 構造体とか配列とかもバイト列として表現できるわけだから, キャストすれば何でも可
- 813 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:08:35 ]
- >>812
× 関数使用は 〇 関数仕様は
- 814 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:27:02 ]
- なるほど、ありがとうございます。
mmapとかの共有メモリがお手軽そうですね。 >>812 やはりできるんですね。やろうとしてsegvでちゃったん ですが、できるとわかればもうちょっと調べてみます。
- 815 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:29:28 ]
- vectorのmax_size()って中の人はどうやって計算してるの?
- 816 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:51:40 ]
- bad_alloc出した場合って普通何をするもんなのかな
・APIとかで開いた画像ファイルとかを閉じる ・そのメソッドで確保成功した分のメモリを開放する ・そのメソッド内での仕事が完了したらbad_allocを上に投げる ・再帰的に開放作業を繰り返して、一番上でプログラム終了 とかでいい?
- 817 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:01:25 ]
- >>815
gcc 4.1は単にsize_type(-1) / sizeof(value_type)を返してた。 VC2008は、上の値とアロケータの最大サイズと比較してちっさい方返してた。
- 818 名前:デフォルトの名無しさん [2009/06/09(火) 19:52:52 ]
- void Initialize(){
ここで配列を5本動的確保 } そしてこの関数で使いたいんですがどうすればいいですか? void calc(){ } calcは何度も呼び出すのでcalc内で動的確保するのは無駄だと思いました。
- 819 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:03:38 ]
- template <typename _T,int _Size>
class hoge { private: std::vector<_T> _vec[5]; public: void Initialize(void) { for(int i=0;i<5;++i) _vec[i].reserve(_Size); } void calc(void) { 以下略 };
- 820 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:09:32 ]
- vectorとかのコンテナのサイズを変えるときはtry-catch(bad_alloc)したほうがいいの?
- 821 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:17:52 ]
- >>819
できればSTLなしで・・・
- 822 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:48:36 ]
- >>821
お前の質問に対する答えが>>819なわけだが、STLがその答えの本質じゃないことぐらい判るだろ。 コードを一から書いて欲しいなら宿題スレ行ってこいよ。
- 823 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:17:14 ]
- 内容がC++からちょっとずれますがお願いします。
大学ではじめてのC++で勉強しているのですが、phpの初心者向けサイトで コードをみたところc++と似ていて驚きました。c++はphpにも応用が利くと聞いたのですが、 C++をどの程度できるようになればphpでも簡単なwebサービスをできるでしょうか?
- 824 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:32:03 ]
- C++をいくら極めてもwebサービスはできんじゃろ。
なんせ標準ライブラリにwebに関するものはまったくはいっとらんからな…。
- 825 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:33:51 ]
- >>821
STLなしでとか何言ってるの? まさかSTLない環境でやってるわけじゃなくて知識がないだけでしょ? ちょっとで良いから勉強しろよ。
- 826 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:34:11 ]
- >>814
Linux の実装はしらんが, Solaris とか *BSD とかの実装だと, mq_send で msq_ptr からサイズ分 kernel 内バッファにコピーして, mq_receive で該当領域を読み出し側にコピーする で, kernel は該当領域にアクセス可能か否かの test 程度は行っている ので, とんでもない引数を与えると EINVAL か何かが返るはず segv が発生するのは, mq_receive で, msq_ptr として与えた領域サイズより 大きな msg_len を与えてスタック書きつぶしたときくらいじゃ内かな?
- 827 名前:デフォルトの名無しさん [2009/06/09(火) 21:34:16 ]
- 文字処理が面倒だけど
cgiで起動すれば出来るんじゃね。
- 828 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:36:02 ]
- 0から99までの乱数を表示するプログラムを作ったんですが、コンパイルしたらまた新たな乱数を表示するにはどうすれば良いのですか?
- 829 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:42:11 ]
- >>828
乱数系列切り替えればええんちゃうの?
- 830 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:44:31 ]
- 時刻でも乱数シードに使えばいい
- 831 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:46:56 ]
- >>828
乱数の生成方法によって違うけれど乱数の種を設定できる仕組みがあるはずだからそれで種を変更する。
- 832 名前:デフォルトの名無しさん [2009/06/09(火) 21:50:14 ]
- >>829-831
ありがとうございます。 すいません。 かなり初心者なので、出来れば、詳しくお願いします。 今main関数の中が cout<<rand()%100<<endl; だけなんですが、何かつけ加えますか?
- 833 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:54:17 ]
- >>832 そうゆう話なら取りあえず処理系の名前を書け
- 834 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:54:55 ]
- ↓以下乱数の質について
- 835 名前:デフォルトの名無しさん [2009/06/09(火) 21:56:53 ]
- 箱を開けたら猫
- 836 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:58:12 ]
- >>833
bcc32です。
- 837 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:06:15 ]
- メルセンヌツイスタでぐぐるといいよ
- 838 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:10:23 ]
- >>836
けっして誉められた手法ではないんだろうが おそらく sland(time(NULL)) とかやっとけば? >>834 が期待してるように 用途に応じて生成される乱数の品質とかアルゴリズムとかが問題になる 置くの深い部分だけどな
- 839 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:18:59 ]
- 標準の乱数は大きな素数を割ってるだけみたいな単純な実装なので
それをそのまま使うとカルドセプトサーガみたいなことになるかもね♥
- 840 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:25:25 ]
- >>838
ありがとうございます。 やってみます。
- 841 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:31:08 ]
- >>837
ありがとうございます。 参考にしてみます。
- 842 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:33:38 ]
- どういたしまして
- 843 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:59:13 ]
- 質問したいのですが誰かいますか?
- 844 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:00:12 ]
- います
- 845 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:11:32 ]
- じゃあ質問させていただきます。
今、作っているプログラムはあるファイルから特定の部分の値を読み込み 値だけのバイナリファイルを書き出すプログラムを作っているのですが。 sstreamを使い、値を変数に格納したいのですがfloat型だと格納できるのですが、 int型だと格納されません。 どうしてか教えてください。 ソース: stringstream ss(f_buf); int test[16 * 3]; //ここがint型だと値が入らない for(int i = 0; i < (16 * 3); i++){ ss >> test[(i * 3)] >> w >> test[(i * 3) + 1] >> w >> test[(i * 3) + 2] >> w >> w; } データ: 0;1;2;, 1;2;3;, :
- 846 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:13:48 ]
- >>845
追記 stringstream ss(f_buf);の下に char w; //記号を飛ばすための変数
- 847 名前:デフォルトの名無しさん [2009/06/10(水) 01:19:14 ]
- どうしてでしょう?
- 848 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:20:34 ]
- わからん
- 849 名前:デフォルトの名無しさん [2009/06/10(水) 01:27:14 ]
- どなたか>>845の理由が分かる人いますか?
- 850 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:29:17 ]
- たとえば古いgccはstringsteamの中身に挙動不審なバグがあるので、それが原因かもしれない。
今やってみたらとりあえずgcc 4.1とVC2008はどっちもちゃんと動いた。 #include <iostream> #include <sstream> using namespace std; int main(void) { int t[3]; char w; stringstream ss("1,2,3,,"); ss >> t[0] >> w >> t[1] >> w >> t[2] >> w >> w; cout << t[0] << " " << t[1] << " " << t[2] << endl; return 0; } 出力 1 2 3
- 851 名前:デフォルトの名無しさん [2009/06/10(水) 01:34:22 ]
- >>850さん、ありがとうございます。
環境をかくの忘れてましたね… 環境はVC2005です。 >>850さんのソースも試してみましたがやはりだめなようです… 変数を作った時の不定な値が入ったままでした。 2008でビルドしてみようかな…
- 852 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 10:06:43 ]
- あるディレクトリ下にあるファイルを読み取ってから削除するという処理をしているのですが、希にコピー途中のものを読み取ってしまい、
思ったような動作が出来ない場合があります。アクセスしようと(もしくはアクセス中の)ファイルが、コピー中であるか否かの判断は 一般的にどのような方法で実装するのでしょうか。
- 853 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 10:07:49 ]
- >>852
OSは?
- 854 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 10:09:47 ]
- >>853
Windows 2000/XP です。コピー元は同じPC上の時もあれば、ネットワークを介して他PCからの場合もあります。
- 855 名前:853 mailto:sage [2009/06/10(水) 10:19:57 ]
- 俺はUNIX屋なので、後は誰かに任せた。
- 856 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 11:04:35 ]
- >>854
writeオープンしてからコピーする
- 857 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 11:55:21 ]
- FILE_FLAG_DELETE_ON_CLOSEフラグ付けて開くとか
- 858 名前:デフォルトの名無しさん [2009/06/10(水) 12:41:47 ]
- std::stringでTCHAR扱えないので
std::basic_string<TCHAR>を使うってのはグーグル先生でわかったんですが、 入出力の方法が今度はわかりません。グーグル先生に聞いてもわかりませんでした。 std::cinやstd::coutの代わりにどのように使うんでしょうか?
- 859 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 14:19:21 ]
- //hoge.h
class CHoge { public: void hoge(); }; //hoge.cpp #include "hoge.h" void CHoge::hoge() {・・・}; このCHoge::hogeを省略してhogeだけで書きたいんですけどそういうことはできますか? なぜかusing CHoge::hogeではできませんでした
- 860 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 14:22:27 ]
- 名前空間じゃなくてクラス名か。
全然「なぜか」じゃねーw どうしても面倒なら、ヘッダファイルに中身も書いたら?
- 861 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 14:30:00 ]
- C#を使えばおk
- 862 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 14:34:07 ]
- >>858
wstring & wcoutを使う。 >>859 #define hoge CHoge::hoge
- 863 名前:デフォルトの名無しさん [2009/06/10(水) 14:51:54 ]
- +とか+=とか、そういった四則演算関連の演算子オーバーロードを作成したいのですが、
ネットで見ると、戻り値が参照だったり実体だったりして、演算子によって違うみたいです。 どういう考え方で参照と実体の使い分けをしているのでしょうか?
- 864 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 14:58:39 ]
- 関数を抜けても壊れない参照を返せるなら基本参照返し。
一時オブジェクトを返さざるをえないなら泣く泣く実体返し。
- 865 名前:デフォルトの名無しさん [2009/06/10(水) 15:49:30 ]
- float型の変数がゼロかどうか(誤差も含めて)判断するときに、
1e-4fみたいな数字で比較を行っているコードを見たんですが、 こういう数字の記述の仕方(意味)を説明してるウェブページをどこか知りませんか?
- 866 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 15:53:30 ]
- 科学表記とかでぐぐる
- 867 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:32:36 ]
- 初歩的な部分ですが、
while(i--) 処理 は「iの値が評価され、処理を実行するか決定する」→「iがデクリメントされる」 while(--i) 処理 は「iがデクリメントされる」→「iの値が評価される」 ということで、i>0なら前者は処理が i 回、後者は (i - 1)回行われるということでよいのでしょうか。
- 868 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:34:44 ]
- コーディングの最終段階に入っていて、
なるべく見通しが良くなるように関数に処理を分割したりしています。 a,b,cという関数が有って各関数はうまく行けば0を返し失敗すれば1を返します。 aがうまく行けばbを,bがうまくいけばcを行いcがうまく行けば 最後に少量の出力が有ります。 そこで、今の段階はプロトタイプとして int main() { if(a == 0) { if(b == 0 { if(c == 0{ //some print } } } return 0; } となっているのですが、ネストが深くなりすぎているような気がしてなりません。 なにか良い方法が御座いましたらご教授願います。
- 869 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:37:21 ]
- if (!a && !b && !c)
- 870 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:41:00 ]
- !(a||b||c)
- 871 名前:868 mailto:sage [2009/06/10(水) 17:43:50 ]
- 見落としていた点が有りました。
追加で書きますがお許しください。 aが失敗すればプログラム終了 bが失敗すればプログラム終了 cが失敗すればプログラム終了 とそれぞれ行いたく思います。 よろしくおねがいします。
- 872 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:50:39 ]
- それは a が false を返す代わりに exit(1) を呼び出せばいいじゃないか^-^
- 873 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:57:00 ]
- >>872
そうなんですよね、一度そのような事を考えたのですが 言語はC++なのですが、 kmaebashi.com/bbs/bbs12.html というページを見かけてなんとなく怖くなってexit()を使わなくしたのですが、 実際どうなのでしょうか? よろしくおねがいします
- 874 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 18:09:17 ]
- どっちにしても>>869や>>870でOK。
- 875 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 18:11:32 ]
- >> 874
ありがとう御座います。 無事きれいになりました!! 感謝感激です。
- 876 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 18:52:22 ]
- C++にはJavaのObjectクラスに相当するようなものは無いんでしょうか?
Java使い向けに書かれているデザインパターン本を読んでて 脳内翻訳するのに必要になったもので
- 877 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 18:59:05 ]
- 全然別人が話に食いつきます。
>>873が言う >ISO/IEC 14882:1998 3.6.1-4 >exit 関数を呼び出すことは現ブロックを抜けずにプログラムを終了させることであるため、 >自動記憶域期間を持つオブジェクトは破棄されない。 >静的記憶域機関を持つオブジェクトのデストラクタ中から > exit を呼び出すことは、未定義の動作を引き起こす。 これって 巻頭言 2000〜 ttp://park1.wakwak.com/~y-nagano/200001.html ここに書いてあるとおりなんだろうが、 恐ろしいよねぇ。
- 878 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 19:37:24 ]
- もよもと exit はプログラムの異常終了時くらいしか使わんからなー。
- 879 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 20:17:11 ]
- >>858
自分で作ればいい。 #ifdef UNICODE # define tcin std::wcin # define tcout std::wcout # define tcerr std::wcerr # define tclog std::wclog #else # define tcin std::cin # define tcout std::cout # define tcerr std::cerr # define tclog std::clog #endif あと、mainの頭で、文字コード変換が行われるように指示しておく。 std::locale l(""); // 数値を取り扱うならstd::locale l(std::locale::classic, "", std::locale::ctype);のほうがよいかも。 tcin.imbue(l); tcout.imbue(l); tcerr.imbue(l); tclog.imbue(l);
- 880 名前:デフォルトの名無しさん [2009/06/10(水) 20:57:45 ]
- C++なら例外使えばいいのに
- 881 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:00:13 ]
- >>880
誰もキャッチできない例外をスローするってこと? みんなはそうしてるの?
- 882 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:03:14 ]
- 例外のよい使い方がいまだにわからん
- 883 名前:881 mailto:sage [2009/06/10(水) 21:14:30 ]
- >>882
俺は 関数の戻り値は正常値ならおk、 異常値を返す場合は-1とか0とかそういう値に限り、 不完全なオブジェクトを返すような形は とらないようにしている。 そして不完全なオブジェクトを返さざると得ない時に 例外を使っている。 ・・・でもやっぱり俺もわからない。
- 884 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:15:49 ]
- ttp://pc12.2ch.net/test/read.cgi/tech/1241438694/
ここの>>740が妙な提案をしていたよ。 もっとも実際には出来なさそうって結論になったのだが。
- 885 名前:デフォルトの名無しさん [2009/06/10(水) 22:06:18 ]
- ABCが失敗したら例外発生させて、キャッチして適当に処理して return 0 すればいい。
- 886 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:24:46 ]
- VC++を勉強するのにお勧めの本ありますでしょうか?
初級〜中級くらいをめどに
- 887 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:29:14 ]
- いわゆるぺゾルト本。
Programing Windows 第5版。 定番なので。
- 888 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:32:10 ]
- >>886
VC++だから、MFCかも知れないが 普通にSDK使う程度なら、wisdomとか入門サイトから見るといいよ 俺はいろいろなサイト見て学んだ
- 889 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:33:06 ]
- >>887
www.amazon.co.jp/Programming-Windows-Microsoft-Charles-Petzold/dp/157231995X/ref=sr_1_1?ie=UTF8&qid=1244644307&sr=8-1 これのことでしょうか?すごくとっつきにくそうなんですが
- 890 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:37:56 ]
- 今時MFCはどうかと思うけど、お勧めの本はなさす。
中級以上なら、Effective C++のシリーズお勧め
- 891 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:38:07 ]
- この本は原著じゃなくても翻訳はまともだから大丈夫だよw
プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) (単行本) まぁ…とっつきにくい感じはするかなぁ。 まぁ、あくまで定番ってことで。
- 892 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:40:51 ]
- Effective C++はもちろん名著だけど、VCの勉強にはならんじゃろw
- 893 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:16:36 ]
- 質問です
Cでファイルに書き込むときに fwrite(str, 1, strlen(str), fp); fwrite(str, strlen(str), 1, fp); とどちらが一般的ですか?何か違いは出てくるのでしょうか?
- 894 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:24:08 ]
- VC++で、いっぱい書店においてるような本はどうなのですか?
入門〜やや中級手前レベル?の内容くらいかいてるようにはみえたのですが 役に立たないのかな
- 895 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:56:43 ]
- >>894
プログラミング言語を全く知らない人が、いきなりVCに手を出す状況とかなら 決して悪くはないんじゃないかしら?
- 896 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 01:49:07 ]
- >>893
fwrite(str, 1, strlen(str), fp); に1票。 なんとなく2番めの引数は型のサイズ、3番めの引数はその個数って 思っている。
- 897 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 04:45:58 ]
- >>893
>fwrite(str, 1, strlen(str), fp); 1バイトをstrlen(str)分書き込む、成功した際の戻り値がstrlen(str) >fwrite(str, strlen(str), 1, fp); strlen(str)バイトを1回書き込む、成功した際の戻り値が1 結果は同じ ただ、意味のあるデータなら後者の方が意味的に良くない?
- 898 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:13:39 ]
- >>895
>プログラミング言語を全く知らない人が、いきなりVCに手を出す状況 そうとうな窮地だな。
- 899 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:24:29 ]
- #include <iostream>
#include <list> int main() { std::list<int> nums1; nums1.push_back(4); nums1.push_back(6); std::cout << nums1[0] << std::endl; std::cout << nums1[1] << std::endl; return 0; } vectorで動いたソースをlistに変更してみたら動かないのでしがなんででしょうか?
- 900 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:52:45 ]
- エラーメッセージ読めよ
- 901 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:56:21 ]
- 「動かない」というのはこの場合、極めて曖昧な比喩表現でしかない。
比喩を使われても困る。
- 902 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 11:17:11 ]
- list<int>::iterator p = nums1.begin();
while( p != nums1.end() ) { cout << *p << endl; p++; } list はランダムアクセス子をもってない
- 903 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 12:24:09 ]
- www.geocities.jp/KY_webid/cpp/library/012.html
なるほど了解した。ありがと
- 904 名前:デフォルトの名無しさん [2009/06/11(木) 15:57:58 ]
- gprofって、対象のプログラムが使うライブラリが全てスタティックリンク
でないといけないのです? そういうのないですよね?
- 905 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:09:13 ]
- try {
m_pInt = new int [N]; } catch { delete [] m_pInt; // <-するべき?それとも放置? }
- 906 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:28:03 ]
- >>905
m_pIntに予め 0 を入れておけばdeleteしても問題ない
- 907 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:22:38 ]
- >>905
そんなことよりboost::scoped_array使え。
- 908 名前:デフォルトの名無しさん [2009/06/12(金) 01:31:58 ]
- ちょっとした質問です。
二分木の高さと深さは違うものですよね。
- 909 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 01:37:26 ]
- 木の「高さ」とノードの「深さ」のこと?
|

|