- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 21:36:23 ]
- エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。 ※sageは禁止です。 【前スレ】 【初心者歓迎】C/C++室 Ver.34【環境依存OK】 pc10.2ch.net/test/read.cgi/tech/1169039760/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 596 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:51:26 ]
- >>588
そうは言っても元のコードが iostream 使ってるんだから そこから調べたらいくらでも情報が出てくるはずだろ。 模範解答らしい >580 にはキーワードを足す必要があるものは 一個も無いし。その後の流れを見ても質問者がとんでもなく アホだったとしか考えられない。
- 597 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:53:25 ]
- >>596
じゃ、そのiostream使ってるんだから、のくだりを書いてやれよ 自分が初心者だった頃は泣きついてたくせに
- 598 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:55:27 ]
- >>596
そのいくらでも情報が出てくるから困るんだろが 電話帳渡されて583-1723見つけろって言われて見つけられるかおまえ? お前が言ってるのはそういうこと
- 599 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:56:36 ]
- iostreamってテンプレート使ってるから初心者には少々取っつきづらい
まぁいきなり全部理解しようとせずに少しずつ順番に使うようにすると 勝手に手が動くようになってるけど
- 600 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:57:16 ]
- >>597
「くだり」って、「〜調べたらいくらでも情報が出てくるはずだろ」って書けばよかったのか? 言ってることは >577 と同じなんだが。
- 601 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:58:59 ]
- >>598
電話帳は番号で検索できないが Web はキーワードで検索できる。全然違うな。
- 602 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:59:10 ]
- 途中参加です。
本のコピペでプログラムを作ろうとしているのか。 俺はiostreamに詳しくないのだ。 質問者が何処まで知っていて何を知らないのか判らないから 回答が難しいよね。 まだ5時間しかやってないのか。 これにこりずに続けろよ。
- 603 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:01:30 ]
- こんなところでもいじめやってんだから日本のいじめは根深いね
- 604 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:02:32 ]
- ま、いじめた側はどうせいつか同じ目に遭うよ
ほっとけ
- 605 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:04:13 ]
- これは本当にひどい
- 606 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:05:37 ]
- もっとふざけた奴なら釣ってもいいだろうけどあんなマジメなのはやめとけよ
- 607 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:06:43 ]
- 俺からも>>586が氏ぬように呪っとくわ
- 608 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:07:31 ]
- 560 から 580 が導き出せないのは異常。
- 609 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:34:42 ]
- 読ませてもらった
俺からは>>586は無事なんだが >>586の子供がいじめられて自殺するように呪っとくわ それくらい悪質だな
- 610 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:57:19 ]
- 586は少なくとも2chの中ではごく普通のことだと思うが
- 611 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 15:12:51 ]
- 俺一応真面目に答えた側なんだけど。
なんつーか、行き詰まっているのに妙に自信過剰というか、 変な意地が見え隠れするのが気になった。 真面目なのは確かなんだろうけど、それは必ずしも 皆から受け容れられるということを保証してはくれないわけでさ。 自分も相手も匿名のこの場でこういう経験しておけたのは 長い目で見ればプラスなんじゃないのかなぁと思ってみたり。
- 612 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 15:20:01 ]
- 根拠のないプライド持った能無しほど困った存在もないからな。
- 613 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 15:40:57 ]
- たまたま俺みたいなやさしい人がいなかったときに書き込んだのが
運が悪かっただけだよ。 2ちゃんねるが@IT会議室みたいにはなって欲しくない。
- 614 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 16:14:05 ]
- つーか、そもそも>547の原文の下の訳が滅茶苦茶なわけで。
- 615 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 16:30:08 ]
- ん?そうか?どこが?
- 616 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 16:46:26 ]
- つーかお前らよくこんな下らないことでスレ引っ張るな。
そんなに暇なのか? >>547なら、こんなもんでいいだろ。 #include <iostream> int main() { int i, c; char charArray[51]; std::streambuf *sb = std::cin.rdbuf(); if ((c = sb->sbumpc()) != '"') return 1; for (i = 0; i < 50 && (c = sb->sbumpc()) >= 0 && c != '"'; ) charArray[i++] = static_cast<char>(c); charArray[i++] = '\n'; std::cout.rdbuf()->sputn(charArray, i); return 0; }
- 617 名前:デフォルトの名無しさん [2007/03/17(土) 16:54:16 ]
- >>603からの自作自演が酷すぎてワロタ
C初心者は歓迎だがネット初心者や2ch初心者は帰れ
- 618 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 17:01:26 ]
- C版
#include <stdio.h> int main() { char charArray[51]; if (scanf("\"%50[^\"]\"", charArray) != 1) return 1; puts(charArray); return 0; }
- 619 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 17:17:29 ]
- >>616と>>618見るまで入力テキスト内の"を全て取れって問題だと思ってた
最初と最後にしか出てこないんだな
- 620 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 17:19:39 ]
- >>619
Read a string of the form "characters"
- 621 名前:デフォルトの名無しさん [2007/03/17(土) 17:54:39 ]
- 今Linuxで動くアプリケーション(なんて大げさなものでもないですが)を作っています。
一般的なC++におけるDebugビルド用のマクロって何か決まっていますか? _DEBUGってのは Visual C++用みたいですが・・・ 自分で勝手にマクロ決めていいもんなんですかねえ
- 622 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 17:56:24 ]
- アンダースコアで始まらない名前なら何でもおk
- 623 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 17:57:32 ]
- 逆に、assert.hではNDEBUGを利用している。
まぁ無難に、DEBUGで委員ジャマイカ。
- 624 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 18:21:13 ]
- >>621
リリースビルド時に NDEBUG 定義するから NDEBUG 定義されてないときがデバッグビルド。
- 625 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 20:07:57 ]
- それってただ多くのコンパイラで採用されてるだけ?
それとも規格で決まってるの?
- 626 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:00:44 ]
- 623は規格で定まっている事項。
- 627 名前:625 mailto:sage [2007/03/17(土) 22:01:11 ]
- ありがとう!
どんな環境でも安心して使えるんだね。
- 628 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:06:17 ]
- 規格を守っていないシステムが存在しないという証明はできないから
どんな環境でも安心して使えるということにはならん
- 629 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:18:41 ]
- そんなときは assert.h を自作すればよし。簡単だよ。
- 630 名前:デフォルトの名無しさん [2007/03/18(日) 00:25:28 ]
- Visual Studio2005 C++で
読み込んだり計算したりして出した 正の整数値分の配列を宣言したいのですが 取り方がわからないので教えていただきたいです unsigned int a; char buf[10] = "231"; a = atoi( buf ); こんな感じで a を取っていたとき a の大きさ分だけもった b 配列をつくることってできないでしょうか? /*--------------------- const unsigned int c = 231; int d[c]; -----------------------*/ 気分的に(笑)上の様な感じで int b[a]; と宣言してしまうと 定数式が必要です。 とか サイズが 0 の配列を割り当てまたは宣言しようとしました。 とか 'b' : サイズが不明です。 とか怒られてしまいます・・・
- 631 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:38:02 ]
- const unsigned int c = 231;
int *d = malloc(c); こんなかんじ?
- 632 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:42:17 ]
- C++ って言ってるから new じゃね?
int* b = new int[a]; 使い終わったら delete b[];
- 633 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:43:05 ]
- delete[] b
でしょうがぁぁぁあああ!!!
- 634 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:44:07 ]
- ごめんなさい><
boost::shared_ptr しか使ってないからもう忘れました><
- 635 名前:630 mailto:sage [2007/03/18(日) 00:54:35 ]
- こんな早くレスもらえるとは!
ありがとうございます
- 636 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:18:40 ]
- >>634 配列に shared_ptr は使えないんじゃね?
- 637 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:19:43 ]
- vectorでいいじゃん。
- 638 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:22:09 ]
- >>636
shared_array があるじゃん
- 639 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 06:54:25 ]
- >>634
たぶんこんな感じ namespace bll = boost::lambda; boost::shared_ptr<int> hoge(new int[42], bll::bind(bll::delete_array, bll::_1));
- 640 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 08:00:39 ]
- 素直にshared_array使えよw
- 641 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 08:30:55 ]
- シャーベット・アーリーと読んでしまったorz ネヨ…
- 642 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 08:32:24 ]
- 寝る前に、
早くシャーベットを食べるんだ。
- 643 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:34:06 ]
- 虫歯に注意
- 644 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 23:56:17 ]
- 引数がvectorでも組み込みの配列でも動作する、平均値を返す関数を書くべく、
引数を反復子(ポインタ)にして template<class Ran> double average(const Ran& begin, const Ran& end){ (略) } と定義したのですが、関数呼び出し部分で double av_arr[] = {10, 20, 30, 10}; size_t av_arr_size = sizeof(av_arr) / sizeof(*av_arr); double x = average(av_arr, av_arr + av_arr_size); としたところ、 「テンプレート のパラメータ 'Ran' があいまいです。 'double *' の可能性があります。または 'double [4]'」 とコンパイラ(VC2005)にダメ出しされてしまいます。 average(av_arr + 0, av_arr + av_arr_size); とすれば共にポインタとして認識してくれるようですが、 読んだ本には、「配列の名前を添え字なしで使うと配列の先頭のポインタが渡される」と書いていたので、 元のままだと何が悪いのかよくわかりません。 "double [4]"って何の型?? みたいな話もあるんですが、 解説とスマートな解決策をご教授願えれば幸いです。
- 645 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 00:04:28 ]
- >>644
double av_arr[4]; 確かに av_arr と &av_arr[0] は、 同じ値になるけど 型としては別のものだよ。 ちょっとややこしいね。
- 646 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 00:07:06 ]
- >>644
template<class Ran> double average(Ran begin, Ran end); エラーメッセージによると、 double average<double*>(double* const& begin, double* const& end); double average<double [4]>(double const (&begin)[4], double const (&end)[4]); のどちらか決めかねるようだけど、1つめの引数がどっちでも マッチしてしまうからエラーになるんだと思う。 テンプレート引数の推測時には配列はまだ配列のまま。 読んだ本は C の本か、 C++ でも入門書あたりだろう。
- 647 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 00:10:12 ]
- >>644
double av_arr[] = {10, 20, 30, 10}; において、av_arrは、'double [4]'という型ですよ。 もしav_arrが'double *'という型だと size_t av_arr_size = sizeof(av_arr) / sizeof(*av_arr); は、sizeof(double *) / sizeof(double); になっちゃうよ。
- 648 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 00:31:57 ]
- >>645-647さん
ご丁寧な解説、痛み入ります。 おかげさまで、理解に至りました。ありがとうございます。 お察しの通り、読んでいるのはC++の入門書ですね、はい。 精進いたします。
- 649 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 01:13:27 ]
- vc8で、スタック上に複数のオブジェクトを作ったとき
デストラクタは作った順とは逆の順番で呼び出されるようですが これに依存するような、オブジェクト間の依存関係を作ったりしてもOKなんでしょうか?
- 650 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 12:20:29 ]
- 構築した逆順で解体されるのは規格で保証されて滝ガス。
- 651 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 12:22:51 ]
- うん。OK
- 652 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:19:45 ]
- 違う順番で解放されたらスタックじゃないしな
- 653 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:25:42 ]
- >>652
そういう意味じゃないだろー。
- 654 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:57:37 ]
- スタックだからこそじゃないんですか?
- 655 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:01:17 ]
- 実行順を保証しないと困る事があるからだ。
依存し合ってる場合とか。 そもそも、自動変数がスタックで実装されるかどうかなんて 規格で決まってないっしょ?
- 656 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:15:12 ]
- 入門書に載っていたサンプルコードをそのまま写してコンパイルしてみたのですが、
kouza.hの6行目で「宣言の構文エラー」と表示されます。 1ファイルにまとめれば正常にコンパイルされるのですが、どういった問題があるのでしょうか? ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3759.zip ソースはこれです。
- 657 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:48:30 ]
- >>649でスタック上って言ってるからスタック前提の話かと思いました
- 658 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:51:13 ]
- >>656
kouza.cppとmain.cpp両方で、多重対策してないkouza.hをインクルードしてるせいで多重定義になってるだけじゃないの?
- 659 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:58:24 ]
- >>648
オブジェクトA・B・CとプッシュされたものはC・B・Aと取り出される プログラムの関数もスタックを使って実装されてる
- 660 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 23:42:22 ]
- ソースファイル上で関数宣言の後などに
LFが挿入されているのをよく見掛けるんですが これってどういう意味があるんですか? void hoge(int piyo) { } ^L みたいな感じ
- 661 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 23:44:44 ]
- そんなの見た事ない。
文字コードの違う環境でいじったんじゃね?
- 662 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:22:40 ]
- >>660
LF(^J)なら必ず入るだろ、改行コードだから。 FF(^L)なら改ページコードとして入れるという習慣が一部にあるらしい。 プリンタに出力したときに関数単位で出力されることを期待しているのだろう。
- 663 名前:656 mailto:sage [2007/03/20(火) 00:33:27 ]
- >>658
kouza.cppの中身(「#include"kouza.h」以外")をkouza.hに移して試してみたのですが、 依然エラーは消えないままです。 main.cppの方に移しても同様なので、原因は別のところにありそうです。
- 664 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:42:40 ]
- 具体的にはどのようにコンパイルしているんだ?
- 665 名前:656 mailto:sage [2007/03/20(火) 02:05:14 ]
- >>664
Cpadでコンパイル時パラメータの欄に main.cpp kouza.cpp kouza.h と入力した状態でコンパイルしています。
- 666 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 03:16:34 ]
- >>665
Cpadは使った事無いけど、ヘッダーファイル(kouza.h)も指定しないといけないの? Visual C++ 2005EEとg++ 4.1.2で普通にコンパイル通ったよ。
- 667 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 06:37:45 ]
- >>656
CPadってBorlandC++Compilerだけだっけ? ↑なら bcc32 main.cpp kouza.cpp で正常にコンパイルできたけど
- 668 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 06:50:51 ]
- パラメータの入力順が違うだけだったりな
kouza.h kouza.cpp main.cpp とか
- 669 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 07:16:51 ]
- ヘッダをC言語としてコンパイルしているので、classでエラーが出るという落ちでは
- 670 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 07:25:43 ]
- >>663
そんなことしても多重対策にはならんわいw
- 671 名前:656 mailto:sage [2007/03/20(火) 15:43:42 ]
- みなさん回答ありがとうございます。無事に解決することができました。
>>666 kouza.hを外したらコンパイルが通りました。 以前にヘッダも指定した時はたまたま上手くいったので、 それが正しいと思い込んでしまっていました。 >>670 kouza.cppの中身を移してkouza.hとmain.cppだけをコンパイルすれば 対策ではなく、そもそも多重定義が起こらないと思ったのですが・・・ 何か自分が勘違いしてるかもしれません。申し訳ないです。
- 672 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 16:02:45 ]
- >>662
^LはFFなんだね.首でも吊ってくるよ 勉強になった dクス
- 673 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:31:41 ]
- >>650-651
久しぶりに職場にお泊りしてしまった 遅くなったけど、ありがとう
- 674 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 15:21:56 ]
- windowsでMSTPサーバを使用して、メール送信してますが
outlookで、メール送信することできるでしょうか? APIかコマンドラインから使うことできれば、便利なんですが。 よろしくお願いします。
- 675 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 15:24:56 ]
- Outlook Expressのことなら知らない。
OfficeのOutlookなら、VBAでできるかやってみろ。 それでできたらC++でもできる。
- 676 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:26:27 ]
- >>675
レス感謝です。 検索して、しらべてみます。
- 677 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:05:11 ]
- >>674
メーラーを外部から操作するためのMAPIというAPIがあり、Outlookは 対応しているが、ある時点で(XPのSP2だったかな?)、セキュリティ絡みで 非常に強い制限が課せられるようになったはず。 送信が許可されてたかどうか。
- 678 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:20:23 ]
- 済みません、int から byteヘとか
そのまた逆にする場合はどうしたらいいでしょうか? ググッたんですがJavaやC#は見つかったんですけれども C++が見つからなくて 初心者の質問で済みません
- 679 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:22:50 ]
- CやC++にはbyteなどという型は存在しないのでintからbyteにする方法などはありません
- 680 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:27:08 ]
- あっそうなんですか
そうすると今使ってる byteはwinやTurbo C++の環境なのかな...orz もうちょっと調べてみます
- 681 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:33:12 ]
- typedefでしょ?
castすればいい。もちろんcastの動作を理解した上でやってね。
- 682 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:42:53 ]
- byteとcharって、どの程度違うの?
- 683 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:43:22 ]
- 有り難う御座います、castの知識曖昧な所が多いので
勉強しながらやってみます
- 684 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:02:02 ]
- >>682
charはコンパイラによって符号ありだったりなしだったりするが BYTEは大抵は符号なしcharのtypedef byteはシラネ
- 685 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:47:47 ]
- >>678
static_cast おそらくbyte→intのように、扱える範囲が広くなるほうへは使わなくても平気。 Cとの互換を保つため実は狭くなる方へもキャスト無しで行けるが、キャスト使っておけ。 エラーにできないもんだから、みんな警告を出す。
- 686 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 19:20:44 ]
- 有り難う御座います
やってみます
- 687 名前:デフォルトの名無しさん [2007/03/23(金) 05:44:57 ]
- 質問です。
tableと言う配列があったとして ループ部分で、前の値を計算式に含める場合。スマートな方法は無いのでしょうか? 具体的には int table[128],res[128]; for(int i=0; i<128; i++){ res[i]=table[i-1]*5; } こういった式の事です。 このままでは、1回目のi=0の時に負の値が添え字に与えられてしまいます。 int i=1だと、res[i-1]としなければならず、なんとも気持ちが悪いものです。 一般的にはこのようなループはどのように対処するものなのでしょうか?イディオム的なものはあるのでしょうか?
- 688 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 05:51:26 ]
- >>687
res[0]には何入れるの?
- 689 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 06:19:26 ]
- >>687
int * dest = &res[0] ; int * src = table[-1] ; for ( ; dest != &res[128] ; ++dest, ++src ) { *dest = *src * 5 ; } あるいは、 std::copy( &table[-1], &table[127], &res[0] ) ; >>688 悪魔が入ります。
- 690 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 07:31:31 ]
- >>689
> int * src = table[-1]; おまえ正気かいな
- 691 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 07:37:29 ]
- >>689
それ何の解決にもなってないだろ
- 692 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 08:28:34 ]
- >>687
>res[i-1] 結局行き着くのはここ それで気持ちが悪いとか言ってたらC/C++なんてやってらんねぇよ >>689 そんなにアクセス違反とか領域破壊とかしたいのかおまいはw
- 693 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 13:44:09 ]
- 添え字に飽和減算マクロを使えばおk
- 694 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 17:51:14 ]
- >>687
res[i-1] はコンパイラによって (res-1)[i] みたいに なることが多いので気持悪く思う必要はない。最初から (res-1)[i] とも書けるけどこれは規約違反。
- 695 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 19:41:22 ]
- >>694 強い電波をキャッチしました。
- 696 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 20:06:10 ]
- >>694
(res-1)[i] <-> *(res-1+i) <-> res[i-1] resがポインタ型なら常にこれらは等価。 規格にもなんら違反していない。
|

|