[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 12:15 / Filesize : 193 KB / Number-of Response : 819
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

スレを勃てるまでもないC/C++の質問はここで 8



1 名前:デフォルトの名無しさん [2009/03/02(月) 00:36:19 ]
スレを勃てるまでもない低俗な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/

555 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:06:14 ]
えーと、どこから突っ込めばいいの?C++が目指したのは基本的に効率だよ。
それは速度とコーディング効率で、プログラマの能力と方針にあわせて、
どちら側を重視する事も出来る。充分に熟練していれば、他の言語よりも高い
バランスで、両立する事も可能。それは全ての言語の、全てのメリットを上回る
意味では無いけどね。現実には機能を散漫に付けすぎて、高いバランスどころの
騒ぎじゃないけど、目標としてはそんなところ。

>>554
どうも設計者が平均的プログラマの能力等を、考慮に入れなかったのでは無いかと予想。
自分で設計しといて、ベテランしか使えねーとか言ってるしねぇ。

556 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:21:38 ]
「間違いを犯す莫迦にこそ価値がない」

という仮定が間違ってるんだよ。
なぜなら、間違いを犯す莫迦しかいないから。

間違いを犯さないプログラマなんて一人も存在しないから。

557 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:28:43 ]
「オレの嗜好通りにソースを書かないやつはクズ」

558 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 18:26:47 ]
C++標準化委員会に名前を列ねている連中だってbugを出すんだから、
ましてや昼間に書き込んでるネラーなんてなあ?w


559 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 18:58:04 ]
>>556
全員一律に同じレベルの莫迦だということにしないと
自分を保てないというのなら
そういうことにしてもよい。

560 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:06:06 ]
つまり、自分は間違いを犯さないプログラマであるといいたいわけね。

ちなみに、99点も0点もどちらも「間違いを犯す」ことに違いないよ。
100点満点だけが「間違いを犯さない」といえる。

さぁ、ベン図を描いて確認だ!w

561 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:09:56 ]
>>559は「莫迦」の程度の話に摩り替えてるな
「間違いを犯すか否か」の話なんだが。

まぁいいか。論理的精密さを求めるような話でもない。
所詮は小さなプライドにしがみついた煽りあいだ。

562 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:10:19 ]
自分ひとりだけで完結する規模のものしかやらないのなら
将来メンテすることもないような使い捨てのものしか書かないならそれでいいじゃん

563 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:13:37 ]
だな。それならいくら自分がバカで間違いだらけでも問題ない。



564 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:32:38 ]
アンドリューハントによると、自分のプログラムにバグがないと思っているときには、バグは見つけられない。
言い換えれば、自分は間違いを犯さないと考えているプログラマは自分のプログラムからバグを見出せない。

565 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:42:27 ]
このスレもム板化してきたな…技術の話しろよ、カスども。

566 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 19:53:58 ]
>>565
ここはム版ですよ?w

567 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:05:29 ]
>>565
一週間ぐらい我慢しろよカス

568 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:21:31 ]
>>561
すりかえてなんかいねぇよ。
程度問題だろっつってんだよ。
>>556 の「間違いを犯す莫迦」の前に「ひとつでも」てのが付くなら、
そんな頭のおかしい「仮定」なんざ誰がしてるってんだ。

569 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 21:47:01 ]
いや、頭がおかしいのはあなたですよ^^

570 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 22:00:27 ]
いかに「あいまいな」仕様書が危険か、これでわかりましたね。
では、次の話題どうぞ。

571 名前:デフォルトの名無しさん [2009/03/27(金) 22:40:22 ]
C++が危険なコーディングには警告を出すという方針なのだとしたら
printfを使ってもC++コンパイラは全く警告を出さないからprintfを使うことはC++的に全く問題ないということだよ。

572 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 22:44:15 ]
>>571
その考え方はおかしい

573 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 22:57:20 ]
警告を出すかどうかはC++の仕様で定められてはいない。コンパイラの実装者の考え次第だ。
実際、Stroustrupはいろんなことについて「これに警告を出さないコンパイラが多いのはがっかりだ」とか言ってるな。
D&Eに書いてある。具体的な事例はあんまり覚えてないが。



574 名前:デフォルトの名無しさん [2009/03/27(金) 23:10:50 ]
C言語は上から順番に処理されるんだよね。
そうすると、割り込むみたいなことは許されないんだよね?
例えばfor文のループ中にキーを押したらそのときのtimeを取れるみたいなのは無理?
for( )
・・・・・・・・・
if(getchar

見たいなのじゃなくて、for文でゲームみたいなの動かしたいんだけど、
その途中でどんな途中でもtimeが取れるみたいなことは出来ないですか?

575 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:18:42 ]
>>574
_beginthreadex


576 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:23:46 ]
つ _kbhit()

577 名前:574 mailto:sage [2009/03/27(金) 23:29:12 ]
初心者板ってあるんですね。行って来ますすいませんでした。

578 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:28:32 ]
UWSCというフリーソフトに [CHKIMG]という関数があります。
画像ファイルと一致する画像を発見すると、その座標を変数に格納するというものです。
これと同じ機能をC言語で実装するにはどのような関数を使えば良いのでしょうか?


579 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:45:58 ]
>>578
Win32API に画面をキャプチャするのがあるから
それで画面を取り込んで指定画像と比較すればいいんじゃないかな

580 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 15:35:03 ]
すまん質問させてくれ
今C++のtemplateで新しく設計・作成したクラスがあるんだが

main.cpp
temp.h
temp.cpp

のようにソースを分けたいと思ってる
でも、templateだから.objにしてしまうとビルドエラーが発生
何とか分けたいのだが、良い方法ないでしょうか?

581 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 16:49:25 ]
蛇足だと思うが、Templateはコンパイル時に計算されてしまうのでobjになった時点で定数になっている。
exportっていう仕様があるにはあるけど、各社ともに実装できなくて放置状態だ。いや、一個だけあったかもしれんが。。。

VC6でやってた記憶があるけど、もう忘れちゃったなぁ。
VC9使ってるが、ヘッダにベタ書きしてる。

582 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:09:53 ]
>Templateはコンパイル時に計算されてしまうのでobjになった時点で定数になっている。
さっぱりワケが解ってないらしい。
(なんだ「計算」だの「定数」だのって)

583 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:16:43 ]
そりゃ君の経験不足



584 名前:581 mailto:sage [2009/03/30(月) 17:33:07 ]
CTFE(だっけ)が何で高速っていわれるかしってんの?しらないの??魔法じゃないのよ。
多分>>580が望んでるのはジェネリックスのほうだと思う。

585 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:37:34 ]
CTFEって何

586 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:38:49 ]
en.wikipedia.org/wiki/Compile_time_function_execution

587 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:05:35 ]
>>580
こういうのがあったが。
ttp://okwave.jp/qa270432.html

これで解決かな??

588 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:13:56 ]
>#include "TList.cpp"
…分ける意味ねぇな、とか思わないのが不思議。

589 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:39:23 ]
>>581
俺もヘッダにべた書きしてた事あるんだが
ヘッダに書くなんてありえないとか言われて、それ以来分けてる
template classを使ったのは速度を犠牲にしてでも、汎用性+αの目的の為

>>587
ありがとう。これは知らなかったからまた新しく知識が増えた
只、ヘッダ以外をインクルード…まあヘッダにベタ書きしたと思えばいいかな…
暫くはこれを使ってみます

レスくれた方々本当に有難うございました

590 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:46:47 ]
>ヘッダに書くなんてありえないとか言われて、
「ありえねぇよな、STL」と言い返せ。

591 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:02:36 ]
printfは素晴らしいよね。
coutより使いやすい

592 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:24:38 ]
でもたとえば template<> hoge< int >( パラメータリスト )
みたいなテンプレート特化がしぽぽファイルに書き込まれていると
これはテンプラータ関数ではなく一般の関数と同じ扱いだから
定義を頭ファイルに書き込めないのであって(淫乱は別として)
多重定義アラーがでるよって思うな。あっさらーむ。

593 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:30:49 ]
あぁ、そうそう。ただテンプレート特化の注意点についてだけ言及しても
解決策はどうしたらいいのってことになるので、つまりそこはグーグルだよ。おにいさん。
以下の「-inl.hファイル」という項が参考になる。

www.textdrop.net/google-styleguide-ja/cppguide.xml

要するに、もう一個、てんぷらクラス/関数専用のサブのヘッダファイルを用意して
そこにてんぷらの実装コードだけを分離しつつ、
ヘッダファイルでそのサブヘッダファイルをインクルードしたらどうなの?って話。
これなら本来実装を書き込むしびびんファイルをいんこるどするよりも気持ち的に安全。



594 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:18:29 ]
>>592-593
酔っ払いすぎ。

595 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:24:22 ]
今の話題がよく分からないんだが。

特に理解出来ないのが#include "TList.cpp"とかやってるサンプルが出てきてからなのだが、
この会話はレベルが高い話なのか低い話なのか?

(このレベルってのはハードウェアに近いかどうかって意味じゃなくてね。)


>>580が悩んでるのはExplicit instantiationで解決する類の話じゃなくて?

596 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:28:39 ]
ヘッダに置きたくない理由がわからんのにレベルもくそもあるかいな

597 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:29:06 ]
そのエクストラボーキサイトイニシエーションとかいうのの詳細は
このスレのちょっと前の方に出てきているわけです。
d.hatena.ne.jp/aki-yam/20081129/1227982516

しかしこれはソースの分離というより、
あらかじめ分離してコンパイルしたオブジェクトファイルを用意しておく
という感じでありますね。いいです。すごく。おおきい。

598 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:31:51 ]
>>597
オヤジギャグかますなよ

599 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:51:34 ]
かます。>゚))))))<

600 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:04:07 ]
グローバル変数って他のファイルからexternで参照できるよね。

グローバル変数にstaticを付けると、
他のファイルからexternで参照できなくなるの?


601 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:13:14 ]
ぐぐれかす

602 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 20:29:10 ]
>>600
そうだよ。

603 名前:600 mailto:sage [2009/03/31(火) 20:58:08 ]
>>601
とっっくにググってあるよ。
ググった結果、>>600のように解釈したんだ。
何の実りもないレスすんなカス。


>>602
納得できた。
ありがとう。



604 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:05:12 ]
ちょっと試せば1分で判るような質問も、何の実りもないけどね

605 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:14:07 ]
>>604
動いたかどうかじゃなくて正式な仕様として聞きたかったとか?
だいたい2chで実りを求める方がおかしいよーな。

まあどうでも良いけど、これが火種になってスレが汚れないことを願う。


606 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:18:57 ]
>>605
おまえが汚れだ。

607 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:28:20 ]
>>606
2chに一生をかけてる人が「2chで実りを求める方がおかしい」発言にキレた構図。


608 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:34:15 ]
>>607
バーカ

609 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:36:20 ]
>>608
って言われてるのか。かわいそうだがお似合いなお方w

610 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:49:49 ]
             ,.、   .,r.、
            ,! ヽ ,:'  ゙;.
            !  ゙, |   }
            ゙;  i_i  ,/
             ,r'     `ヽ、
|  ,.、  ,r.、    ,i" _,    ._   ゙; うーん・・・・
| ,! ヽ,:'  ゙;.     !. ・     ・  ,! 
| !   ,!  }     ヽ、 x    _,r''  僕には何も言えない
|二゙;  i二二二(⌒ノ"''`''''''''''''"´`ヽ.
| ,r'      `ヽ、 ´ヾ、      l  l
,i"   _,   _ ゙;    !      i___|
!.  ・     ・,!   |       t,ノ
|ゝ_    x _::'    !、、、、、、、、、、!
|,/"`''''''''''''''"´';,     |   |    |
(,;!         !)       |   |   |
|゙''::r--、::--;r'        |____|_____|
|―゙'ー-‐゙ー-゙'―┐   (,,,__(,,,____)

611 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:14:21 ]
>>600のせいでスレのレベルが落ちたな

612 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:16:48 ]
>>611
もともと低かったろ。

613 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 07:46:43 ]
普通の頭であれば検索だけで理解できるからな
検索先が信じられずに2ちゃんのレスのほうを信じるのもどうかと思うし



614 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:14:01 ]
ここは検索のスレではありません。
検索に関する会話はご遠慮下さい。

615 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:57:04 ]
staticをつけると内部的な名前が変わる

616 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:13:50 ]
かどうかは知ったこっちゃないわな。

617 名前:デフォルトの名無しさん [2009/04/01(水) 16:33:56 ]
バイナリデータとテキストデータを結合してchar型配列に格納したいです。

例えば

char STR[256] = {0};
unsigned long Value_A = 0x01234567;
unsigned long Value_B = 0x89ABCDEF;
char Str_A[] = "sample1";
char Str_B[] = "SAMPLE2";

というデータがあったとして、配列STRに以下のようにデータを格納するコードを教えて下さい。

< binary > < text >
0x01234567 0x89ABCDEF sample1|SAMPLE2

ちなみに、バイナリデータはテキストにはせず、BigEndianで格納したいです。
あとテキストには'|'文字を入れて区切りたいです。
よろしくお願いします。

618 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:24:58 ]
#include <ctype.h>
#include <stdio.h>

#define swap(ul) ((ul)<<24)|(((ul)&0xFF00)<<8)|(((ul)&0xFF0000)>>8)|((ul)>>24)

void main()
{
unsigned char STR[256] = {0};
unsigned long Value_A = 0x01234567;
unsigned long Value_B = 0x89ABCDEF;
char Str_A[] = "sample1";
char Str_B[] = "SAMPLE2";
unsigned long ul;
int i;

ul = swap(Value_A);
memcpy(STR, &ul, 4);
ul = swap(Value_B);
memcpy(STR + 4, &ul, 4);
strcpy(STR + 8, Str_A);
strcat(STR + 8, "|");
strcat(STR + 8, Str_B);

for (i = 0; i < 8 || STR[i]; i++) {
printf("%d:%02X[%c] ", i, STR[i], isprint(STR[i]) ? STR[i] : '.');
}
}

0:01[.] 1:23[#] 2:45[E] 3:67[g] 4:89[.] 5:AB[.] 6:CD[.] 7:EF[.] 8:73[s] 9:61[a]
10:6D[m] 11:70[p] 12:6C[l] 13:65[e] 14:31[1] 15:7C[|] 16:53[S] 17:41[A] 18:4D[M]
19:50[P] 20:4C[L] 21:45[E] 22:32[2]

619 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:39:06 ]
char * push_STR(char* d,char* e,char* s,int ln){
int i = 0; while(d < e && i < ln){*d++ = *s++; ++i}
return d;
}

char *p = STR, *end = STR + sizeof(STR);
if(p=push_STR(p,end,&Value_A,sizeof(Value_A)) >= e) abort();
if(p=push_STR(p,end,&Value_B,sizeof(Value_B)) >= e) abort();
if(p=push_STR(p,end,&Str_A,sizeof(Str_A)) >= e) abort();
if(p=push_STR(p,end,&Str_B,sizeof(Str_B)) >= e) abort();

620 名前:デフォルトの名無しさん [2009/04/01(水) 17:50:34 ]
もしかしたら上の方のコードが途中かもしれませんが 
よろしくおねがいします。
C言語の入門ページの動的配列などの部分を読んで
mallocやreallocでメモリの再確保などができる事はわかりました。
しかし、結果的にははじめに変数に入力をうけてその結果にあわせて
配列の量を変更する事はできません。
例えば文字列の入力を受け付けるプログラムでたとえば書籍の
タイトルを受け取る処理なのでせいぜいこのくらいだろうと見積もって
配列の大きさをとっていたとしてユーザーが予定以上の
非常に長いタイトルの書籍を入力したりしても残りの部分は切り捨てられるように
なってしまうと思います。これを回避する方法は無いでしょうか?

621 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:57:18 ]
ない、と言ってしまうのは簡単だが
もし上限がなかったらどうなるかを考えてみよう

622 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:02:15 ]
1文字ずつ受け取って、それらをリンクリストでつないでいくというのはどうだろう?
メモリが許す限りどんどん大きくできるぞ。しごいね!

623 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:02:34 ]
Stringクラスを使う



624 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:04:42 ]
cstringでぐぐったら紐なしエロパンツサイトがヒットした

625 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:05:29 ]
キー入力を都度処理してグルグル回せば出来ない事はないけど

パイプ通しての洪水テキストや
例えばカナ漢字変換が驚くほど丈夫で数メガバイトの変換済文字列をイッキに送り込んでくるような状況

には対処しきれんよな

626 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:15:49 ]
ありがとう御座います。
前もって入力を受け付けるときに文字数宣言が有る事を書いておきたいと思います。

627 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:24:43 ]
そこでstream IOですよ

628 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:36:41 ]
結局メモリ+HDD(外部記憶装置)以上のデータは扱えないので扱えるデータには制限がある


629 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:39:55 ]
ネットがあるじゃないか

630 名前:デフォルトの名無しさん [2009/04/01(水) 19:51:28 ]
もうデバッグに一日以上費やしても理由がわからなかったので、ここで質問させてもらいます。
本当に理由が解明できなくてマジで困ってます…。

for (i=0; i < (Num_Points-1); i++)
{
distance_x = (gsd[i+1].x-cur_xpos) * (gsd[i+1].x-cur_xpos);
distance_y = (gsd[i+1].y-cur_ypos) * (gsd[i+1].y-cur_ypos);
distance = sqrt(distance_x + distance_y);
}

for (i=0; i < (Num_Points-1); i++)
{
a0 = atan2(cur_ypos-gsd[i].y, cur_xpos-gsd[i].x)-atan2(gsd[i+1].y-gsd[i].y, gsd[i+1].x-gsd[i].x);
a1 = atan2(gsd[i+1].y-cur_ypos, gsd[i+1].x-cur_xpos)-atan2(gsd[i+1].y-gsd[i].y, gsd[i+1].x-gsd[i].x);
}

コンパイルエラーは出ないのですが、実行した際に途中で止まってしまいます。
何回か試したところ、上のループか下のループどちらか一方しか書いてない時は動きます。


631 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:58:34 ]
一日以上費やしたってデバッガ使った?

632 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:15:36 ]
どっか別のところでスタック破壊してんじゃねーの?

633 名前:デフォルトの名無しさん [2009/04/01(水) 20:15:52 ]
使いましたが、デバッガではよくわかりませんでした。
どちらのループも単体でしかコードに存在しない時は動くので、
printfで結果表示した場合、ちゃんと計算結果が出ます。

しかし、両方ともコードに書くと、なぜか止まってしまうんです。



634 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:46:09 ]
>>633
for文の中でiを表示したらどこまで進むの?

635 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 20:53:29 ]
本当に>>630の通りに書いてあるならループにする意味がねーよw

636 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:08:33 ]
>>634
どちらかのループ単体のみの実行なら、Num_Points-2まで進んでいます。
なので、配列の範囲外から数を呼び出してるということはないみたいです。

637 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:15:24 ]
>>635
エイプリル・フールは午前中までだってのにな

638 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:09:54 ]
ソースアップすれば調べてもいいよ

639 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:51:04 ]
>>635
distance, a0, a1 がクラスのインスタンスで、
= がオーバーロードされてるかもよ。


640 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:58:38 ]
本人かデバッガ使って解らないものを、他人が不定な変数の多い
部分的ソースだけ見せられて判るとは思えない。

641 名前:デフォルトの名無しさん [2009/04/02(木) 00:04:08 ]
>>636
上のループで1からNum_Points-2まで進んで
下のループでも1からNum_Points-2まで進んだってこと?
それなら処理終わってるよね?

せっかく解決しようと聞いているんだから省略しないできっちり説明してほしいな。


642 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:40:04 ]
>>641
上のループ、もしくは下のループどちらかしか書いてなければ正常に動きます。
だから、printfでiがどこまで進んでいるかも確認して、Num_Points-2まで進んでました。
このループを両方コードに書いてプログラム実行すると止まって、
printfで表示できてたものも表示されなくなってしまいます。

643 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:48:48 ]
>>642
printfを具体的にどこにどのように入れてるのか知らないが、つまりループを両方書くと
実行時に最初のループに入ってすらいないということか?

もし可能であれば、実際にその問題が生じるような最小限のコード全部を書いてほしい。
つまり、俺らがそのままコピペして自分でコンパイルしてみると、同じ問題に遭遇できるようなコードってことね。
それが出来れば問題解決のための労力は少なくて済む。
まあ実際にはかなり長いコードになっちゃうのかもしれないけど。
あと、君が使ってるコンパイラに特有のトラブルだったりすると、助言できないかもしれない。



644 名前:デフォルトの名無しさん [2009/04/02(木) 00:54:16 ]
>>634
これ↓実行したら何が表示されるの?

Num_Points=1
fprintf(stderr, "start(1) Num_Points=%d\n", Num_Points);
for (i=0; i < (Num_Points-1); i++)
{
fprintf(stderr, "(1)[i=%d][Num_Points=%d]\n", i, Num_Points);
distance_x = (gsd[i+1].x-cur_xpos) * (gsd[i+1].x-cur_xpos);
distance_y = (gsd[i+1].y-cur_ypos) * (gsd[i+1].y-cur_ypos);
distance = sqrt(distance_x + distance_y);
}
fprintf(stderr, "end(1) Num_Points=%d\n", Num_Points);

fprintf(stderr, "start(2) Num_Points=%d\n", Num_Points);
for (i=0; i < (Num_Points-1); i++)
{
fprintf(stderr, "(2)[i=%d][Num_Points=%d]\n", i, Num_Points);
a0 = atan2(cur_ypos-gsd[i].y, cur_xpos-gsd[i].x)-atan2(gsd[i+1].y-gsd[i].y, gsd[i+1].x-gsd[i].x);
a1 = atan2(gsd[i+1].y-cur_ypos, gsd[i+1].x-cur_xpos)-atan2(gsd[i+1].y-gsd[i].y, gsd[i+1].x-gsd[i].x);
}
fprintf(stderr, "end(2) Num_Points=%d\n", Num_Points);

645 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:59:13 ]
>>643
printfはどこに入れても実行されないです。
このループを二つ入れると、そのvoid関数の部分のprintfは全てダメになります。
結構変数値を他の部分から呼び出してて、
その部分に関しては別の人がやった部分なので最小限のコードを作るにも少々時間かかると思います。
他にも少しやらなくてはいけないことがあるので、もしそれができたら戻ってきます。

ここまで、あまり上手く説明できなくて御迷惑おかけしました。
レス下さった方々、ありがとうございます。

646 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:03:50 ]
最小限のコードなんて作らなくていい。
とりあえず>>644をコピペすればいいだけだろ。

647 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:06:28 ]
無駄骨

648 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:10:54 ]
ステップ実行して、どこで爆死してるか見つけないとダメじゃね?
どっかでメモリ、ぶっ壊してるのだろ、きっと

649 名前:630 mailto:sage [2009/04/02(木) 01:30:25 ]
>>644
何も表示されません…。自分が両方のループ入れた時の症状と同じです。

650 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 05:50:46 ]
もう4月馬鹿は過ぎているんだから釣りは勘弁してくれ。

651 名前:デフォルトの名無しさん [2009/04/02(木) 06:40:26 ]
#include<stdio.h>

int sum(int x,int y){
return x+y;
}

int max(int x,int y){
return x*200+y*300;
}

int main(void){
int x,y,i,am,pm;
char cl;
for(i=0;i<9;i++){
scanf("%s %d %d",&cl,&x,&y);
am=sum(x,y);
pm=max(x,y);
printf("%s %d %d\n",cl,am,pm);
}
return 0;
}
と書いて実行するとき、%sの読み込みにc1と入れても
出力の%sではcだけとしか表示されないんです。
誰かこの謎の答えを教えてください。

652 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 06:46:18 ]
>>651
char cl; → char cl[5000];


653 名前:デフォルトの名無しさん [2009/04/02(木) 07:03:43 ]
>>652さん
ありがとうございます!!ありがとうございます!!
何でこんなことにも気づかなかったんでしょ(;'ω`)アホだ自分…



654 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 07:32:36 ]
>>633
「デバッガでは良く分からない」んじゃあない
お前がデバッガを分かってないだけ

655 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 07:38:41 ]
>>651
char cl[100];
if (scanf("%99s%d%d", cl, & x, & y) != 3) fprintf(stderr, "Illegal input.\n);






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<193KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef