スレを勃てるまでもな ..
299:デフォルトの名無しさん
09/01/01 22:36:41
>>298
300:デフォルトの名無しさん
09/01/01 22:37:25
みんな死ね
301:デフォルトの名無しさん
09/01/01 22:37:46
>>300
お前だけ氏ね
302:デフォルトの名無しさん
09/01/01 22:38:22
またこの流れか
303:デフォルトの名無しさん
09/01/01 22:38:32
C++でポインタを習う際、何故みんなは「〇〇型へのポインタ」よりも「代入した変数のアドレス」を意識してしまうんだろうか・・・
アドレスの値が印象的なのか・・・
304:デフォルトの名無しさん
09/01/01 22:38:42
崇高なオブジェクト指向が実は初歩的な概念であることを明らかにされた初心者が暴走し始めたな
305:デフォルトの名無しさん
09/01/01 22:39:57
>>303
みんなって誰だよ。アホか。
306:デフォルトの名無しさん
09/01/01 22:40:24
>>304
その勘違いはさすがに・・・w
307:デフォルトの名無しさん
09/01/01 23:01:20
ここで関数型信者の一言
↓
308:デフォルトの名無しさん
09/01/01 23:06:24
288 :デフォルトの名無しさん:2009/01/01(木) 22:26:15
>>287
死ね
309:デフォルトの名無しさん
09/01/01 23:06:38
とりあえず黙れ
310:デフォルトの名無しさん
09/01/01 23:07:29
とか言ってみる
311:デフォルトの名無しさん
09/01/01 23:07:50
オブジェクト指向は便利だけど実際必要かって言われると必要ないよ。
別に無くてもいい。
現にみんながOCaml使うときオブジェクト指向的な部分ってあんまり使わないでしょ。
まずはHaskellやってMonadに慣れといたほうが後々色々と応用が効くからそっちのほうがいいよ。
312:デフォルトの名無しさん
09/01/01 23:08:29
なにについて揉めてるんだ?
313:デフォルトの名無しさん
09/01/01 23:08:47
誰も必要だとは言ってないし。
314:デフォルトの名無しさん
09/01/01 23:10:49
>>309
wwwwwwwwww
315:デフォルトの名無しさん
09/01/01 23:11:36
こいつ病気だな。
316:デフォルトの名無しさん
09/01/01 23:12:34
>>315
wwwwwwwwww
317:デフォルトの名無しさん
09/01/01 23:12:49
315 :デフォルトの名無しさん:2009/01/01(木) 23:11:36
こいつ病気だな。
318:デフォルトの名無しさん
09/01/01 23:14:26
贈るほどでもない言葉
↓
319:デフォルトの名無しさん
09/01/01 23:15:22
printf("俺様はプログラマーの卵だ!!");
320:デフォルトの名無しさん
09/01/01 23:17:09
これは酷い
321:デフォルトの名無しさん
09/01/01 23:17:31
↑
贈るほどでもない言葉
322:デフォルトの名無しさん
09/01/01 23:18:34
#define loop while(1)
323: 【大吉】 【1003円】
09/01/01 23:29:13
C++はオブジェクト指向でいい
324:デフォルトの名無しさん
09/01/01 23:30:39
全角
325:デフォルトの名無しさん
09/01/01 23:31:42
だから何?
326:デフォルトの名無しさん
09/01/01 23:32:51
だから何?
327:デフォルトの名無しさん
09/01/01 23:34:07
なんか病気のコピペ厨が張り付いているんですけど
328:デフォルトの名無しさん
09/01/01 23:34:12
だから何?
329: 【だん吉】 【791円】
09/01/01 23:34:19
c++にするべきかな
330:デフォルトの名無しさん
09/01/01 23:34:44
するべき。
331:デフォルトの名無しさん
09/01/01 23:34:54
だから何?
332:デフォルトの名無しさん
09/01/01 23:49:10
壊れたラジオみたいだな
333:デフォルトの名無しさん
09/01/02 00:38:41
壊れかけ、ではなくて?
334:デフォルトの名無しさん
09/01/02 00:47:21
そう。壊れてる
335:デフォルトの名無しさん
09/01/02 00:49:37
センスない・・・
336:デフォルトの名無しさん
09/01/02 01:07:15
あきらめるな
337:デフォルトの名無しさん
09/01/02 09:00:22
>284
iostream、stringについては随分普及してきたと思う
でもvectorやsstream、fstream辺りは入門サイトだとなかなか出てこなくね?
この辺りが使えないと、配列やCライブラリを使わなきゃいけない場面が多くなる
個人的にはclass定義より詳細な文法より先に標準ライブラリやSTLの使い方だと思う
初っ端からSTL連発くらいのがC++初心者には良くないか?
338:デフォルトの名無しさん
09/01/02 09:39:43
>>332
学生さんだね。
社会に出ればわかるけど冤罪も罪のうち、疑わしきは罰するってのは法治国家の不文律だよ。
339:デフォルトの名無しさん
09/01/02 09:42:19
まぁ、とにかく動かしたいんだっていうならそっちのが早いだろうさ
340:デフォルトの名無しさん
09/01/02 11:02:06
>>337
その「入門サイト」とやらが、たまたま「class定義より詳細な文法より先に標準ライブラリやSTLの使い方」で「初っ端からSTL連発」なんだろ?
「初心者」がきちんとC++を学びたいなら、そんなわけのわからないサイトではなく、定評のある書籍や教育コースを受講した方がいいと思うけどね。
341:デフォルトの名無しさん
09/01/02 12:11:34
>>340
STLが、C++基本的構造(クラスなど)より先にあって
STLを実装するために、C++の基本構造が作られたんだ。
日本語を勉強するのに、文法的な構造から始めるか、
会話から始めるかという違いだろう。
342:デフォルトの名無しさん
09/01/02 12:21:35
STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。
当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。
1987年までにステパノフとマッサーはジェネリックプログラミングの研究成果としてAdaのリスト処理ライブラリを開発してリリースしていた。
しかしながらAdaは軍需産業以外ではあまり普及しておらず、
C++は当時まだ言語として未成熟ではあったものの(テンプレートはまだなく後から実装された)
より広く普及してジェネリックプログラミングの良好なサポートが提供される可能性が高いと考えられた。
ベル研究所のアンドリュー・コーニグがこの動きを察知して、1993年11月のANSI/ISOのC++標準化委員会に
アイデアを提出するように求めるようなことがもしなければ、この作業は間違いなく、さしあたっては研究プロジェクトとして、
あるいはヒューレット・パッカード研究所のプロプライエタリなライブラリとして継続されたであろう。
提案は委員会で全面的に賛同を得て、すぐさま1994年3月のミーティングでのコーニグからの正式なリクエストへとつながった。
Standard Template Library - Wikipediaの抜粋
Wikipedia項目リンク
343:デフォルトの名無しさん
09/01/02 12:33:51
>>341は、「STLを実装するため」に追加された機能だけが、「C++の基本構造」とでもいいたいのだろうか。
アホか。
344:デフォルトの名無しさん
09/01/02 12:52:10
STLとC++の開発が始まったのは調べたら1979年らしい。
これらは別々の人たち、場所で開発されていて、STLを実装するために
C++の開発に大きな影響を与えたこととおもうが。
345:デフォルトの名無しさん
09/01/02 13:03:19
らしい。
おもうが。
346:デフォルトの名無しさん
09/01/02 13:06:38
聞きかじりと妄想だけで断言口調のやつ、多いな。
347:デフォルトの名無しさん
09/01/02 13:19:57
これからC++を始めるならOOPを基本とすべき。
348:デフォルトの名無しさん
09/01/02 14:01:13
今さら入門書って思うレベルだけどAccelerrated C++を読んでみたい。
349:デフォルトの名無しさん
09/01/02 14:02:04
ぜひどうぞ
350:デフォルトの名無しさん
09/01/02 14:15:37
ア、、アク、アクセ・・・
俺には無理だった・・・
351:デフォルトの名無しさん
09/01/02 15:23:16
>348
その本はまさに「配列より先にvector」の本やね
352:デフォルトの名無しさん
09/01/02 15:29:02
vector は vector で、
< > って何なのとか、2次元配列はどうやってつくるのとか、
面倒臭い事もあるので、
vector を先にやった方がいいと言える程手軽な物でもない。
at を使わないと境界チェックもしてくれないし。
動的配列より先に vector ってのなら構わんがね。
353:デフォルトの名無しさん
09/01/02 15:32:05
>>348を読んでから言え馬鹿
354:デフォルトの名無しさん
09/01/02 15:41:03
C++では、
Cのcontainer_of()相当のことは標準で出来ないでしょうか?
355:デフォルトの名無しさん
09/01/02 15:57:08
カプセル化を前提とするC++で
そういうものが必要になる事自体設計がおかしいと思われる。
もちろん標準でそんなことはできない。
356:デフォルトの名無しさん
09/01/02 16:02:59
クラスの継承がそれに相当すると主張するのは無茶すぎますかね?
357:デフォルトの名無しさん
09/01/02 16:03:35
買いに行ったけど売ってなかった・・・(´;ω;)
DVDコピーとかの本ばっか。
358:デフォルトの名無しさん
09/01/02 16:06:04
>>356
ダウンキャストか。
359:デフォルトの名無しさん
09/01/02 16:16:43
>>355,356
返答ありがとうございます。
継承使えばいいのかとも考えたのですが、
継承ではクラス内にlistを3個とか複数持たせる
ことは出来ないと考えました。
クラス内にlistを複数持つという設計が良くない
のかもしれませんが、代替案が浮かびません。
360:デフォルトの名無しさん
09/01/02 16:19:56
list と何か関係あるのか?
361:デフォルトの名無しさん
09/01/02 16:22:21
>>356
煽りとかじゃなく純粋に質問。
それどういう意味?
362:デフォルトの名無しさん
09/01/02 16:26:14
>>360
説明不足すいません。
Cでは、構造体内にlistを複数持たせておいても
それぞれのlistについてcontainer_of()を使えば、
包含する構造体は求まるので、
それと同等のことをC++で行う方法を考えていました。
363:デフォルトの名無しさん
09/01/02 16:43:29
#include <iostream.h>
int main()
{
cout<<"こんにちわ。"<<endl;
return 0;
}
include ファイルを開けません。'iostream.h': No such file or directory
364:363
09/01/02 16:46:19
自己解決しました。
365:デフォルトの名無しさん
09/01/02 17:09:32
>>361
listを継承したクラスで, listにアップキャストしてリストを作る
それをダウンキャストしたら得られるだろ?
listっていってもSTLのではないぞ
366:!omikuji !dama
09/01/02 17:17:03
C++のコンパイラはやはり
Borland C++Compiler でよろしいのでしょうか
367:デフォルトの名無しさん
09/01/02 17:18:35
無料版の方だったら今時ありえない、よした方がいい
368:デフォルトの名無しさん
09/01/02 17:25:06
>>362
複数なら継承ではなく包含させればいい。
そして、listにそれを所有するオブジェクトへのポインタまたは参照を持たせる。
369:デフォルトの名無しさん
09/01/02 17:27:25
>>366
対応している規格がが古いからお勧めできない。VC++2088 expressを薦める
370:デフォルトの名無しさん
09/01/02 17:27:40
container_of()相当で聞いてるんだから
リンク用のポインタ以外もたないlistなんじゃねーの?
持たせてもいいんだろーか?
371:!omikuji !dama
09/01/02 17:34:36
>>367
>>369
サンクス
372:デフォルトの名無しさん
09/01/02 17:38:01
ググってみたけど、container_ofって危険じゃないか?
引数を間違えて、構造体のメンバじゃない変数を与えてもコンパイルエラーにならないんじゃない?
373:デフォルトの名無しさん
09/01/02 17:38:27
>>368,370
ありがとうございます。
とりあえずSTLのlistを使うことを考えていたのですが、
自前で作るかSTLのlistを継承したリストを
作ってそいつにポインタ持たせればいいということですね。
374:デフォルトの名無しさん
09/01/02 17:43:47
>>373
なにか恐ろしい事をやろうとしているように見える。
STL のクラスは継承する事を全艇に作ってないので
基本的には継承しちゃだめ。
そもそも、list からそれを持ってるクラスをとってこようとしている時点でおかしい。
list を持っているクラスを通して list を扱うのが基本だ。
375:デフォルトの名無しさん
09/01/02 18:45:24
>>373
listとポインタを所有するクラスを作ろう
376:デフォルトの名無しさん
09/01/02 19:53:32
$ cat c_sizeof.c
#include <stdio.h>
int main(void)
{
printf("sizeof(\'\\x80\') == %d\n", sizeof('\x80'));
return 0;
}
/* EOF */
$ gcc -Wall -std=c99 -o c_sizeof c_sizeof.c
$ ./c_sizeof
sizeof('\x80') == 4
$ cat cxx_sizeof.cxx
#include <iostream>
int main()
{
std::cout << "sizeof(\'\\x80\') == " << sizeof('\x80') << std::endl;
return 0;
}
// EOF
$ g++ -Wall -o cxx_sizeof cxx_sizeof.cxx
$ ./cxx_sizeof
sizeof('\x80') == 1
なぜ、C言語ではシングルクォートが、4 Bytesであり、C++では、1 Byteなのですか。
377:デフォルトの名無しさん
09/01/02 19:59:46
>>376
Cではint型で
C++ではchar型だからです
C++でのオーバーロードとかの兼ね合いだろうね
378:デフォルトの名無しさん
09/01/02 20:06:19
1バイトって256種類のパターンを表現できるんだっけ
379:デフォルトの名無しさん
09/01/02 20:06:52
普通はそう
Cにおいては絶対ではないが
380:デフォルトの名無しさん
09/01/02 20:06:58
cher型は嫌いです
381:デフォルトの名無しさん
09/01/02 20:12:08
ちーあ?
382:デフォルトの名無しさん
09/01/02 20:22:07
>>377
ありがとうございます。そういうことだったんですね。
C言語とC++は、こういう細かいところでも違うんですね。
383:デフォルトの名無しさん
09/01/02 20:26:19
なぁ、チーフって何だ?
384:デフォルトの名無しさん
09/01/02 22:20:53
牛肉だろ
385:デフォルトの名無しさん
09/01/02 22:51:07
ロベール先生にお世話になることにしました
386:デフォルトの名無しさん
09/01/03 03:20:44
2ch終わった
2ちゃんねる、海外企業に譲渡 ― 西村博之氏からPACKET MONSTER INC.へ譲渡完了
URLリンク(www.rbbtoday.com)
ニコニコに移行して2chは完全に切る気やな
387:デフォルトの名無しさん
09/01/03 03:30:31
2chが終わるってのも、思い込みすぎかも。まぁ、2chは巨大になったことだし
もし消滅するなら、また別の人がサーバーを運営するだろうね。
手法などは、既に2chのを参考にすれば済むことだし、著作権だの
知的財産権だの、抵触せずに似たものはいくらでも作れるし。
388:デフォルトの名無しさん
09/01/03 03:35:19
IP記録を始めたときも、終わったというやつは大勢いたが、今まで生き残っている。
少なくともユーザに見限られるということはないだろうとは言える。
389:デフォルトの名無しさん
09/01/03 03:37:26
国内しかも個人が代表に見える格好だと
裁判とか税金とかうるさいから、
スケープゴートとして海外企業に移したんでしょ。
ひろゆきとしては譲渡していいことずくめだろ
390:デフォルトの名無しさん
09/01/03 03:44:35
大雑把に言って、内容は不特定多数の人が書き込んで出来上がっているし、
その不特定多数が消滅しない限り、やはり何かしらこういったコミュニティーは
継続するだろうしね。運営者も費用も必要だが。掲示板そのものに
スタイルはいくつかあれど、誰でもやれることだし。ただ、一生をそんなことに
ささげるだけの覚悟はあるかい?
391:デフォルトの名無しさん
09/01/03 03:55:02
つーか、ガンガン機能追加するわけでもないしね。
運用するだけじゃん。こんな掲示板
アウトソースすればよろし
レスは1000までって制限も永遠と変わんないしw
392:デフォルトの名無しさん
09/01/03 05:38:23
複雑な機能なんていらん
掲示板として書き込み/読み込みというシンプルな機能だけで十分
肥大化して良い事なんて無いってのはC++でもいえる
393:デフォルトの名無しさん
09/01/03 08:35:35
2ちゃんねらーらしくもない話してるな
スルーしろよ
394:デフォルトの名無しさん
09/01/03 11:03:58
protected private継承の違いについて
395:デフォルトの名無しさん
09/01/03 11:12:01
int i,j;
i=0;
while(j=10-i++) ってのはありでつか?
396:デフォルトの名無しさん
09/01/03 11:14:57
ありだけど、キミが期待した通りかはわからん。
397:デフォルトの名無しさん
09/01/03 11:15:30
えぇ、変数って2個いっぺんに宣言できるの!?
ってかありなんじゃない
398:デフォルトの名無しさん
09/01/03 11:26:55
>>395
おそらく"ってのはありでつか?"がエラーになる
399:デフォルトの名無しさん
09/01/03 11:49:30
文法上問題は無いが、何か気持ちは悪い。
400:デフォルトの名無しさん
09/01/03 12:03:01
>>395
あり。そう書いたとおりに動く。
401:デフォルトの名無しさん
09/01/03 12:22:43
>>395の話がCの宿題スレでよく分からん議論になってる
402:デフォルトの名無しさん
09/01/03 12:28:17
少なくとも、読むときには困るコードだな
403:デフォルトの名無しさん
09/01/03 13:13:25
>>401
おそらく>>395が向こうで代入式!代入式!ってファビョってる奴だと思う。
追い詰められてこっちに助けを求めてきたんだろ。
404:デフォルトの名無しさん
09/01/03 13:20:32
printfでも入れてコンパイル&動かせばいいだけじゃん > ファビオジニオール
405:デフォルトの名無しさん
09/01/03 13:51:18
なるほど、宿題スレか。
宿題の回答としてはまずいと思うけどな。
わけもわからず写して動作聞かれたら困るべ。
406:デフォルトの名無しさん
09/01/03 13:52:50
>>403
お前がコンパイラが通すから良しといっている基地外だというこは分かったから、
いつまでも必死にファビョってなさいw
407:デフォルトの名無しさん
09/01/03 13:55:38
本人登場w
408:デフォルトの名無しさん
09/01/03 13:56:14
>>403
見えない敵と必死に戦う低レベル講師乙。コードを客観的に考えるのと、
主観ばかりで意見する相手に対して、罵詈雑言で返すだけの無能は
黙っていた方が墓穴を掘らなくて済むぞw
409:デフォルトの名無しさん
09/01/03 14:03:49
>>408
キモッ
410:デフォルトの名無しさん
09/01/03 14:12:17
>>408
お前の発言が主観ではなくなんだと言うのだ
411:デフォルトの名無しさん
09/01/03 14:14:20
408は自己紹介としては良く出来てると思うぜ。
412:デフォルトの名無しさん
09/01/03 14:21:00
ん?
>>408の日本語がよく分からんのだが、
"コードを客観的に考え"てるのが誰で
"主観ばかりで意見する"のが誰で
"罵詈雑言で返すだけの無能"が誰だって?
413:デフォルトの名無しさん
09/01/03 14:22:11
>>395は、くせぇくせぇ、○ンコの臭いがぷんぷんすんぜ、こりゃ〜生っ粋のクソースだ。
間違いねぇ、クソ麻呂のクソースだぜ、ぷぷぷw
414:デフォルトの名無しさん
09/01/03 14:34:49
マジレスするとgccだとコンパイル通らないよ
警告: 真偽値として使われる代入のまわりでは、丸括弧の使用をお勧めします
だってさ
415:デフォルトの名無しさん
09/01/03 14:36:20
あっ、一応警告だけでコンパイルも実行もできた。
j=10 i=1
j=9 i=2
j=8 i=3
j=7 i=4
j=6 i=5
j=5 i=6
j=4 i=7
j=3 i=8
j=2 i=9
j=1 i=10
416:デフォルトの名無しさん
09/01/03 14:36:49
>>414
そりゃ、警告だ
コンパイルエラーじゃない
417:デフォルトの名無しさん
09/01/03 14:38:13
警告をエラーにするオプションを立てればエラーにはなる。一応。
418:デフォルトの名無しさん
09/01/03 14:42:41
質問です.
・ソース
#include <windows.h>
#include <time.h>
#include <stdio.h>
typedef struct
{
time_t time;
WORD namesum;
BYTE name[254];
} HEADER1;
typedef struct
{
time_t time;
WORD namesum;
// BYTE name[254];
} HEADER2;
main() {
BYTE name[254];
printf("HEADER1 = %d\n", sizeof(HEADER1));
printf("HEADER2 = %d\n", sizeof(HEADER2));
printf("name[254] = %d\n", sizeof(name));
printf("HEADER2 + name[254] = %d\n", sizeof(HEADER2) + sizeof(name));
}
・実行結果
HEADER1 = 260
HEADER2 = 8
name[254] = 254
HEADER2 + name[254] = 262
HEADER2 + name[254]はなんで260にならずに262になったのでしょうか?
419:デフォルトの名無しさん
09/01/03 14:44:07
関係ない部分を削ってから質問した方がいいよ
420:419
09/01/03 14:44:54
↑ 「ソースコードの」、関係ない部分を
421:デフォルトの名無しさん
09/01/03 14:45:49
ソースは全部あげたほうがいいだろ。
どこが「関係ない部分」かわかるくらいなら自分で問題解決できるって。
422:デフォルトの名無しさん
09/01/03 14:46:18
>>418
HEADER2 + name[254] = 8 + 254 = 262
ってそのまんだだと思うが
423:419
09/01/03 14:47:48
で、ソースを見たが、8 + 254 はどう考えても 262
424:デフォルトの名無しさん
09/01/03 14:47:54
足し算w
425:419
09/01/03 14:48:48
>>421
まぁそうか・・・HEADER1はどう考えても関係ないんだが。スマソ
426:デフォルトの名無しさん
09/01/03 14:48:54
なんで260になると思ったのか説明して欲しい。
427:デフォルトの名無しさん
09/01/03 14:49:19
>>418の頭の中のバグを直すのは難しいw
消防からやりなおせってとこか
428:デフォルトの名無しさん
09/01/03 14:49:23
パディングの話だろ。
429:デフォルトの名無しさん
09/01/03 14:49:28
>422
HEADER2はHEADER1のname[254]をコメントアウトしているので
HEADER2 + name[254] = HEADER1に何でならないのかと思いまして.
430:デフォルトの名無しさん
09/01/03 14:51:06
それぞれ全く無関係だから。
431:デフォルトの名無しさん
09/01/03 14:51:14
パディングとかアラインメントとかでググれ
432:デフォルトの名無しさん
09/01/03 14:52:31
なんかバカが紛れ込んでて話をややこしくしてるな。
>>422>>423>>424>>426>>427>>430 あたりは無視してよろしい。
433:デフォルトの名無しさん
09/01/03 14:53:03
いやいや、型の定義は (おまえの疑問とは) 関係ないよ。
printfで出力された値を見れば、ただ足し算するだけ。
定義のところに疑問があるなら、疑問を持つべきは最後のprintf文じゃないでしょ?
434:デフォルトの名無しさん
09/01/03 14:53:56
>>433
だから分からん奴は黙っとけ。
435:418
09/01/03 14:54:25
パディングでぐぐったら答えが出てきました.初めて知ったよ.
みなさんありがとう.
436:デフォルトの名無しさん
09/01/03 14:54:32
お前は代入式ってファビョってりゃいいんだよw
437:デフォルトの名無しさん
09/01/03 14:55:41
>>436
クソワロタ
438:デフォルトの名無しさん
09/01/03 14:57:26
パディングやアラインメントならsizeof(HEADER2)の値が6じゃないのを疑問に思うのが普通じゃね?
439:デフォルトの名無しさん
09/01/03 14:57:34
数字だけ言うんだもん、足し算の問題だと思うわ
結局日本語で理解できなかったよ
440:デフォルトの名無しさん
09/01/03 14:58:38
>>434
まぁ解決したからいいいけど、2個目のprintfでHEADER2のサイズが HEADER1 - 256
になってない時点で疑問に思うべきだってことだよ
441:デフォルトの名無しさん
09/01/03 15:20:54
>>436
きもいぃ〜〜〜〜はいっ、きっ、もっ、いっ、キモイ!きっ、もっ、いっ、キモイ!
キモイィ〜〜〜〜
442:デフォルトの名無しさん
09/01/03 15:25:47
なんか頭のおかしい基地外が、自分の不備を指摘されてファビョってまつねw
あのwhile文の中は、条件式が適切なのに、代入式で済ませているなんて、
プログラマー失格だろ。コンパイラが警告しているのに、アホ過ぎ。黙ってろよ、ド素人w
443:デフォルトの名無しさん
09/01/03 15:29:52
簡単な質問で申し訳ないのですが
visual stdio 2005 無償版でデバッグ開始してみたところ
「0x0040115d でハンドルされていない例外が発生しました: 0xC0000094: Integer division by zero」
というメッセージがでて実行中に強制終了してしまいました。
これってどうすればいいんでしょうか・・・?
444:デフォルトの名無しさん
09/01/03 15:30:39
Linuxでは代入が正解だ。
オープンソースも知らない素人は黙っとけよ。
恥ずかしい奴だな。
445:デフォルトの名無しさん
09/01/03 15:32:30
なんか一匹、年明け早々、必死に基地外っぷりを発揮していますね(^ー^)v
アァ〜〜キモッキモッ、きっと鏡を見ると、キモイ面が映っているんでしょうね。
現実に目を向けようぜ、こんな文字列ばかりのスレじゃなくて、さ?
446:デフォルトの名無しさん
09/01/03 15:33:00
>>443
ゼロで割ることはできない。
447:デフォルトの名無しさん
09/01/03 15:33:15
>>443
何かを0で割ったんじゃね?
448:デフォルトの名無しさん
09/01/03 15:34:57
代入式でも条件式でも「式」でありさえすればなんでもいいのがCの仕様。
バカが条件式限定だと思い込んで恥をさらしてファビョりまくってるのが現状。
449:デフォルトの名無しさん
09/01/03 15:35:13
パディングって、詰め物だっけ
コンパイラの最適化って、害悪だと思う
450:デフォルトの名無しさん
09/01/03 15:36:00
最適化がなかったら困ったことになると思うが。
451:デフォルトの名無しさん
09/01/03 15:36:44
>>449
もう一度勉強しようね
452:デフォルトの名無しさん
09/01/03 15:37:19
>>446-447さん
ありがとうございました。解決したみたいです。
453:デフォルトの名無しさん
09/01/03 15:37:28
>>443
デバッグ開始してるなら、中断とか継続とか出ると思う。
中断すれば該当行にカーソルが行く。
その行で割り算してて、割る数が0なんだろう。
変数にマウスカーソルあてると数値見えたりもする。
454:デフォルトの名無しさん
09/01/03 15:37:56
>>443
visual stdioなんか使うからだろ。
gcc使え。
gccなら0除算OKだ。
いまどき0除算もできないコンパイラなんてM$製くらいだ。
これだからドザは駄目なんだよ。
455:デフォルトの名無しさん
09/01/03 15:38:37
パディングってワード間隔でデータを区切って
実行速度を速める為の手法だっけ
456:デフォルトの名無しさん
09/01/03 15:38:42
>>442
式は値を持つんだから、なんの問題も無いだろ。
警告がいやなら、while ((j=0-i++)) とでもすればいい。
なにも知らないド素人は黙ってろよw
457:デフォルトの名無しさん
09/01/03 15:38:50
>>444
これって乱数で過去レスを切り貼りするスクリプトでしょ。
458:デフォルトの名無しさん
09/01/03 15:39:24
やたらからんでくる愚かものがいるなw
さすが、言語スレ
いつまでも、こんな言語仕様のスレみてるのなんて学生ばっかだっつーの
459:デフォルトの名無しさん
09/01/03 15:39:52
みんな親切だな。
英和辞書引け、でいいのに。
460:デフォルトの名無しさん
09/01/03 15:40:21
>>455
そう
461:デフォルトの名無しさん
09/01/03 15:40:44
>>455
基本的にはそうだが、
アラインメントされてないと
データを読めない CPU もある。
462:デフォルトの名無しさん
09/01/03 15:40:57
ビットフィールドってので、
手動でやる場合もある
463:デフォルトの名無しさん
09/01/03 15:41:00
>>454
0で割るってどういうことか知ってる?
464:デフォルトの名無しさん
09/01/03 15:41:49
>>463
宇宙の法則が乱れる
465:デフォルトの名無しさん
09/01/03 15:42:15
学生や初心者が見るスレだからこそ、間違った知識は叩かれねばならない。
466:デフォルトの名無しさん
09/01/03 15:44:34
>>463
visual stdioが破壊されるってことだろ。
素直にオープンソース使えって。
無理するな。
467:デフォルトの名無しさん
09/01/03 15:45:39
>>460-462
アラインメントをキーワードにググってみた。
説明ありがとー
468:デフォルトの名無しさん
09/01/03 16:21:15
>>458
おいっ、絡まれてまともにレス出来ないなら、お前がレスしなきゃ良くね?
だってここ、誰もお前個人を特定、指定してレスを求めているわけじゃないんだが
言うからには自分の発言に責任を持っているんだろうな?
ほれ、鏡を見ろよ。醜い酷い面が映っただろ?誰だよそれ?
そう、お・ま・え・だよ?分かる?それが現実。自分が見たものはどうこう言うくせに
自分で自分を見られる唯一の手段、何か姿を映し出すものを見た時
己の醜さを目の当たりにするのさ。今のあんたみたく。
あんたの発言、第三者から見れば、きんもぉ〜★だぜ?
469:デフォルトの名無しさん
09/01/03 16:22:56
自身thisのアドレスをprintするメソッドを持つクラスを作成して
以下のようにvectorに追加する前のインスタンス
とvector内のインスタンスでprint()を実行したのですが、
addr=0x804b008
addr=0x804b018
と別のアドレスになります。
同じになると思っていたのですが、
これはvectorに登録する時点でインスタンスが
コピーされていると考えればいいのでしょうか?
またその場合オーバーヘ%8
470:デフォルトの名無しさん
09/01/03 16:23:26
#include <iostream>
#include <vector>
using namespace std;
class MyClass {
public:
MyClass() {};
~MyClass() {};
void print() {
cout << "addr=" << this <<endl;
}
};
int main(int ac, char *av[])
{
vector<MyClass> vec;
MyClass *my = new MyClass();
vec.push_back(*my);
my->print();
vec.at(0).print();
delete my;
return 0;
}
471:469
09/01/03 16:24:46
>またその場合オーバーヘ%8
以降の続き
またその場合オーバーヘッドが気になるんですが、
皆さんどう対処してらっしゃいますか?
お願いします。
472:デフォルトの名無しさん
09/01/03 16:27:46
当然コピーが発生する。
ただ、
vector<MyClass*> vec;
vec.push_back(my);
みたいにアドレスをコピーする分には
インスタンスのコピーは発生しない。
ただ、メモリ管理を自分でしないといけなくなってしまう。
boost::ptr_vector を使うという手もある。
473:デフォルトの名無しさん
09/01/03 16:29:50
vectorは、メモリを確保してplacement newという機構とコピーコンストラクタ
で初期化される (記憶があいまいなのでちょっと違うかも)
で、言うとおりコピーはされる。ポインタのコピーに比べれば
効率は悪いけど、実際そんな小さなことが問題になることはほとんどない。
よっぽどでかいデータ構造をソートしまくるとかでない限り。
474:デフォルトの名無しさん
09/01/03 16:31:56
コピーのコストより、
コピーコンストラクタの実装がマズくて
問題が発生しないかチェックする方が重要だったりするよね。
475:デフォルトの名無しさん
09/01/03 16:47:54
いいよいいよー、そうやって自分を否定する者を否定し続けてなさい。
それぞ、井の中の蛙、大海を知らずと言ったものだ。視野が狭いんだよ、
ファビョっている基地外は。もちっとグローバルに、客観的に物事を見な。
自分が思ったことが全て正しい、そんなことを思っているのは、お子ちゃままで。
大人の世界は、いくら自分がそう思っても、現実は、事実とは違っていることなんて
いくらでもあると気づく。実行して見て、コードが間違っていないと思っていても
もっと効率が良いものが存在するだの、自分で考えたのに、後でおかしいと気づくことなんて
いくらでもある。ただ・・・
while(代入式) は不適切だ。
476:デフォルトの名無しさん
09/01/03 16:50:59
>>475
「いいよいいよー、そうやって自分を否定する者を否定し続けてなさい。
それぞ、井の中の蛙、大海を知らずと言ったものだ。視野が狭いんだよ、
ファビョっている基地外は。もちっとグローバルに、客観的に物事を見な。
自分が思ったことが全て正しい、そんなことを思っているのは、お子ちゃままで。
大人の世界は、いくら自分がそう思っても、現実は、事実とは違っていることなんて
いくらでもあると気づく。実行して見て、コードが間違っていないと思っていても
もっと効率が良いものが存在するだの、自分で考えたのに、後でおかしいと気づくことなんて
いくらでもある。」
ここまでそっくりそのままお前に返すよwww
477:469
09/01/03 16:59:01
>>472,473,474
ありがとうございます。
ポインタを使うのがしっくり来そうです
478:デフォルトの名無しさん
09/01/03 16:59:49
Cの規格に沿った構文解析器でも作ってみたら?
while(代入式)が不適切だろうがなんだろうが正しいんだから。
479:デフォルトの名無しさん
09/01/03 17:08:53
>>478
コンパイルできて規格合致であることは誰も否定していない。
480:デフォルトの名無しさん
09/01/03 17:11:38
>>479
まぁ確かに。
言いたかったのは、そこまで熱くならんでもいいんじゃね?ってこと。
481:デフォルトの名無しさん
09/01/03 17:13:34
>>480
478みたいな書き方だとまた話を蒸し返されそうな雰囲気だから勘弁してくれ。
482:デフォルトの名無しさん
09/01/03 17:13:44
>>479
いや、否定してる奴が約一名いるぞ
>>442 とか>>475 とか
483:デフォルトの名無しさん
09/01/03 17:15:22
>>481
失礼した。
書き方に気をつける。
484:デフォルトの名無しさん
09/01/03 17:16:04
while文の条件は条件式にするってのは良い心がけだと思うよ。
linuxなんかでは値があるものは何でもってくらい条件にしちゃうので、
経験積んだらそういうソースにも慣れると良い
485:デフォルトの名無しさん
09/01/03 17:33:25
条件式ではなく比較式と言ってくれ。
486:デフォルトの名無しさん
09/01/03 17:42:19
>>485
呂布かいでし
487:デフォルトの名無しさん
09/01/03 17:44:55
比較するとは限らんぜ
488:デフォルトの名無しさん
09/01/03 19:17:03
式・・・それは愛・・・・・・
489:デフォルトの名無しさん
09/01/03 19:59:08
>>485
そゆこと言ってるから、論理値をリテラルと比較する莫迦が後を絶たない。
490:デフォルトの名無しさん
09/01/03 20:05:45
お前、リテラルの意味分かってないだろ
491:デフォルトの名無しさん
09/01/03 20:58:12
>>489
if(hoge()!=0)...
とか?
あるいは、if((x<y)!=0)...
ということだろうか?
492:デフォルトの名無しさん
09/01/03 21:00:05
(is_hoge() == true) == trueのことだろ。
493:デフォルトの名無しさん
09/01/03 21:05:04
>>492
真理値型の無い言語だぞ?
巣に帰れよ。
494:デフォルトの名無しさん
09/01/03 21:16:20
リテラルってほらあれだ
前屈みになって腕を横に挙げるやつ
495:デフォルトの名無しさん
09/01/03 21:18:09
ボケがわかりにくい上につまんねーよw
496:デフォルトの名無しさん
09/01/03 21:19:33
どどんまい?
497:デフォルトの名無しさん
09/01/03 21:32:53
>>493
処理できた件数を返す関数hogeの場合、#define TRUE -1に対して、
if(hoge()){・・・}
if(hoge()==TRUE){・・・}
とか。
498:デフォルトの名無しさん
09/01/03 22:01:46
>>493
お前の頭はC89止まりか。
499:デフォルトの名無しさん
09/01/03 22:07:12
左辺が右辺より大きいとき
と
左辺が右辺以上の時
って何が違うんでしょうか?
>これと>=を使い分けたりすることってあるのでしょうか?
500:デフォルトの名無しさん
09/01/03 22:09:23
>>499
ちゅうがっこう から やりなおせば
わかると おもいます。
501:デフォルトの名無しさん
09/01/03 22:11:25
>>500
それいぜんに にぽーんごの もんだいかと
おもわれまっしゅる
502:デフォルトの名無しさん
09/01/03 22:12:31
ヾヽ\ヾ\ //// //
\丶\\ ////
|・\ _____ /・> ///
/ ̄ ̄ ̄ ̄\,, ミ\.\ヽ|||liiiii||/ /./彡 ////
|・\ /_____/・> /\.\|||iii||l//彡 ノ(
ミ \.\ヽ|||liiiii||/ /./ノ( / / (,-、 ,:‐、 ) \ ⌒ヽ
\.\|||iii||l// | ⌒ .|/ ─////─ ヽ |
|(,-、 ,:‐、 ) 6 l |. ////─ | .| \\\
. ////Vヽ ,-′ ////'VVVヽ | l
////ェ∧/_ /ヽ . //// γ l / /
//// |/\/ l ^ //// i∧ェェェ∧/ / /
//// | |//// l━(t)━━┥
503:デフォルトの名無しさん
09/01/03 22:28:36
>>499
左辺==右辺の時に真になるか偽になるかの違い。
必要に応じて>と>=のふさわしい方を使う。
504:デフォルトの名無しさん
09/01/03 22:30:48
xが12より大きいとき
xが12以上の時
より・・以上・・そこにある違い・・それが問題ってことですよね?
505:デフォルトの名無しさん
09/01/03 22:30:52
面白い釣りだなあ。
506:デフォルトの名無しさん
09/01/03 22:32:36
>>503
x >= 10 == x > 10
は偽になるってことでしょうか?
507:デフォルトの名無しさん
09/01/03 22:34:12
さんすうのきょうかしょをよんでね
508:デフォルトの名無しさん
09/01/03 22:42:07
>>506
x==10のときだけ偽、それ以外は真。
509:デフォルトの名無しさん
09/01/03 22:42:37
優先順位は大丈夫か?
510:デフォルトの名無しさん
09/01/03 22:44:32
>>509
優先順位知らないんなら口出すなw
511:デフォルトの名無しさん
09/01/03 22:47:21
申し訳ございません
512:デフォルトの名無しさん
09/01/03 22:59:32
>>508
そ・・そうか!!
やっと理解できました!!!!
x < 10は10もは含まれないってことですよね!?
だから
int a;
cin>>a;
if("x < 10"){
cout<<”真"<<endl;
はxが10より小さいってことで
つまり10と入力しても偽になるわけだ!!!!!!!!!
513:デフォルトの名無しさん
09/01/03 23:16:33
while ("テュルー")
はどうなりますか?
514:デフォルトの名無しさん
09/01/03 23:17:47
無限ループ
515:デフォルトの名無しさん
09/01/03 23:17:50
突っ込みどころ満載w
516:デフォルトの名無しさん
09/01/03 23:18:13
・・・??
517:デフォルトの名無しさん
09/01/03 23:25:24
while("forever") ってしない?
518:デフォルトの名無しさん
09/01/03 23:27:07
しない
519:デフォルトの名無しさん
09/01/03 23:30:13
>>517
条件式じゃないと暴れだす奴がくるぞw
520:デフォルトの名無しさん
09/01/03 23:34:54
>>517
そのアイデア貰った
521:デフォルトの名無しさん
09/01/03 23:43:25
ちょ、それ古典w
522:デフォルトの名無しさん
09/01/03 23:43:49
俺も面白いと思った。
while("無限ループ")
{
/* なんか */
}
まあ、しないけど
523:デフォルトの名無しさん
09/01/03 23:44:49
>>519
さすがにお前の粘着ぶりがキモイ
524:デフォルトの名無しさん
09/01/03 23:46:13
while(j=10-i++) を書いた奴が指摘されて、まだファビョってるのか?
基地外だろ、こいつ。指摘した方が言ってもいないことを思っているとか言い出すし。
525:デフォルトの名無しさん
09/01/03 23:49:41
whileの括弧の中が条件式でなければ駄目とは言っていないし、変数を用いて
0か否かで繰り返し条件を指定することもかのうだが、あの式は紛れもなく
代入式で、jの値を使うにしては、不適切だとコンパイラも指摘しているのだが・・・
526:デフォルトの名無しさん
09/01/03 23:51:04
プw
527:デフォルトの名無しさん
09/01/03 23:53:39
いやぁがんばってるね
528:デフォルトの名無しさん
09/01/03 23:55:30
while(*dst++=*src++);
529:デフォルトの名無しさん
09/01/04 00:00:53
>>525
>while文の括弧の中は、
>本来は条件式が入るんだが、それは代入だろ。例え括弧で代入式を括っても、
>それに対して条件式にあう措置をとるべき。
530:デフォルトの名無しさん
09/01/04 00:03:01
>>524
ファビョってるのは「while文の中は、条件式が適切なのに、代入式で…」うんぬん
いってる>>442だろ
ながれ読めよ
>>525
>>456 で結論出てるのにいつまでやってんの?
531:デフォルトの名無しさん
09/01/04 00:04:48
>>530
>>524=>>442で本人だからしょうがないんだよw
532:デフォルトの名無しさん
09/01/04 00:15:46
最近よく喧嘩するね
533:デフォルトの名無しさん
09/01/04 00:29:14
テュルー
534:デフォルトの名無しさん
09/01/04 00:29:51
冬休みだからしかたない
535:デフォルトの名無しさん
09/01/04 00:30:16
出た、「冬休み」
536:デフォルトの名無しさん
09/01/04 00:37:35
connect(sock,( struct sockaddr * ) &echoservaddr, sizeof(echoservadr))
この文の * が意味することがまったくわかりません
*の後に文字もないのですが、ポインタとしてありえなくないでしょうか?
537:デフォルトの名無しさん
09/01/04 00:38:30
ポインタ型でキャストしてるだけ
538:デフォルトの名無しさん
09/01/04 00:51:54
人はなぜ>>534のような発言をするのか。
それは「私は子供ではない」と誇示したいからである。
では、「私は大人だ」と主張する人間が「大人」なのだろうか。
答えは否、断じて否である。
539:デフォルトの名無しさん
09/01/04 00:56:57
で?
540:536
09/01/04 00:57:57
つまり&echoservaddr構造体のポインタを
sockaddr構造体のポインタとしてあつかうってことでしょうか?
まったく何をしているか理解できないのですが
541:デフォルトの名無しさん
09/01/04 00:58:58
>>539
542:デフォルトの名無しさん
09/01/04 01:00:57
>>540
その通りの事をやっている。
sockaddr_in 構造体を sockaddr 構造体であるかのように
無理矢理見なして渡している。
sockaddr_in 構造体と sockaddr 構造体はサイズが同じで、
かつ、こうやってキャストしてもいいと問題ないとされている。
543:デフォルトの名無しさん
09/01/04 01:02:07
connect()の第2引数はstruct sockddr *型(struct sockddr型へのポインタ)を取る。
そこで、&echoservaddr(echoservaddrのアドレス)をstruct sockddr *型(struct sockddr型へのポインタ)へキャストしている。
544:536
09/01/04 01:03:51
>>542
見なす理由がわからないのです。
sockaddr_inのほうが入ってる情報というか入力する情報は多いし
その情報はconnectする際に必要だと思います。
なのに、何故必要な情報がすべてあひってないsockaddr構造体とみなすのかがよくわかりません
545:デフォルトの名無しさん
09/01/04 01:07:27
URLリンク(www.linux.or.jp)
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
2番目の引数の型には、const struct sockaddr *が”必要”
546:536
09/01/04 01:08:58
必要な理由がわからないのです。
ていうか、入れてしまっては前述した疑問がわいてしまって
547:デフォルトの名無しさん
09/01/04 01:10:08
理由は、connect()がそういう仕様だから。
connect()を作った人間がそういう風に作ったから。
548:デフォルトの名無しさん
09/01/04 01:11:16
>必要な理由がわからないのです。
なんというか……
549:デフォルトの名無しさん
09/01/04 01:12:22
>>544
総称的な型として sockaddr を用意して、
connect は sockaddr* を受け取る汎用的な形にしておいて、
より詳細な構造体として sockaddr_in を用意し、
それをキャストして渡す、という風になってんじゃないのかね。
場合によっては sockaddr_in 以外のものも作るつもりだった、
あるいは将来作れるように、そういう風にしてんじゃない?
void* でいいような気もするけど、
それだと何でもキャスト無しに渡せちゃうから、
渡していい構造体なのかどうか注意して指定させるように、
キャスト無しでは渡せないようにしているんだと思う。
まあ、全部推測だけどね。
550:536
09/01/04 01:13:40
つまりsockaddr_in 構造体の中にある入力したアドレスに接続するわけですよね。
しかしsockaaddr構造体にはアドレスがない。それなのに、sockaddr構造体とみなしてしまっては、
アドレスないから接続できなくないのでは?ということです。
551:デフォルトの名無しさん
09/01/04 01:14:33
っていうか、全部が全部
現状が正しい前提で理由を付けなくてもいいと思うけど。
頭いいひとにありがちだよね。
552:デフォルトの名無しさん
09/01/04 01:16:41
後の改造のために凝った事やって、
結局改造なんてしなかった、
ってこともよくある話で。
互換性のために、とかもよくある話。
553:デフォルトの名無しさん
09/01/04 01:18:58
>>546
int connect(int sockfd, const void *addr, socklen_t addrlen);
なら、キャストする必要はないが、connect の第二引数が struct sockaddr である以上、
キャストする必要がある。
ここではキャストする型が重要なのではなく、socket作成時に指定したプロトコルファイミリーが重要。
プロトコルファミリーごとにconnectに必要な情報量は異なり、
kernelでもプロトコルファミリーごとに呼ばれるconnecが異なる。
kernelではaddrlen分ユーザー空間からメモリをコピーし、
所望の処理を行うので、struct sockaddr が重要なのではない。
554:デフォルトの名無しさん
09/01/04 01:20:44
>>550
ああ、そういうことか。
sockaddr_inはsockaddrをIPv4に特化したもの。
sockaddr_inを使うのはIPv4だけだ。
connect()はIPv4以外でも使われる。
URLリンク(www.linux.or.jp)
AF_INETの他に
AF_APPLETALKとかあるだろ。
555:536
09/01/04 01:26:58
>>554
socketでAF_INETを指定しているのですが、
この場合だとIPv4でconnectしてるということでは?
556:デフォルトの名無しさん
09/01/04 01:34:20
>>555
そう。
sockaddr_inを使うのはsockaddrを使うより便利だから。
IPv4を使う場合でもsockaddrにアドレスを設定してもいいよ。でも面倒だよ。
ともかく、connect()が必要とするのはsockaddr_inではなくsockaddrなの。
/usr/include/sys/socket.h にstruct sockaddrとstruct sockaddr_inの定義があるから見比べてみてよ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5371日前に更新/192 KB
担当:undef