トップページ⇒tech
1001コメント287KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆h6A7qfFFu6 2008/12/29(月) 11:05:07
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
http://pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
http://pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
http://pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
http://pc11.2ch.net/test/read.cgi/tech/1221633708/
0369デフォルトの名無しさん2009/01/02(金) 17:27:25
>>366
対応している規格がが古いからお勧めできない。VC++2088 expressを薦める
0370デフォルトの名無しさん2009/01/02(金) 17:27:40
container_of()相当で聞いてるんだから
リンク用のポインタ以外もたないlistなんじゃねーの?

持たせてもいいんだろーか?
0371!omikuji !dama2009/01/02(金) 17:34:36
>>367
>>369
サンクス
0372デフォルトの名無しさん2009/01/02(金) 17:38:01
ググってみたけど、container_ofって危険じゃないか?
引数を間違えて、構造体のメンバじゃない変数を与えてもコンパイルエラーにならないんじゃない?
0373デフォルトの名無しさん2009/01/02(金) 17:38:27
>>368,370
ありがとうございます。
とりあえずSTLのlistを使うことを考えていたのですが、
自前で作るかSTLのlistを継承したリストを
作ってそいつにポインタ持たせればいいということですね。
0374デフォルトの名無しさん2009/01/02(金) 17:43:47
>>373
なにか恐ろしい事をやろうとしているように見える。
STL のクラスは継承する事を全艇に作ってないので
基本的には継承しちゃだめ。

そもそも、list からそれを持ってるクラスをとってこようとしている時点でおかしい。
list を持っているクラスを通して list を扱うのが基本だ。
0375デフォルトの名無しさん2009/01/02(金) 18:45:24
>>373
listとポインタを所有するクラスを作ろう
0376デフォルトの名無しさん2009/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なのですか。
0377デフォルトの名無しさん2009/01/02(金) 19:59:46
>>376
Cではint型で
C++ではchar型だからです

C++でのオーバーロードとかの兼ね合いだろうね
0378デフォルトの名無しさん2009/01/02(金) 20:06:19
1バイトって256種類のパターンを表現できるんだっけ
0379デフォルトの名無しさん2009/01/02(金) 20:06:52
普通はそう
Cにおいては絶対ではないが
0380デフォルトの名無しさん2009/01/02(金) 20:06:58
cher型は嫌いです
0381デフォルトの名無しさん2009/01/02(金) 20:12:08
ちーあ?
0382デフォルトの名無しさん2009/01/02(金) 20:22:07
>>377
 ありがとうございます。そういうことだったんですね。
C言語とC++は、こういう細かいところでも違うんですね。
0383デフォルトの名無しさん2009/01/02(金) 20:26:19
なぁ、チーフって何だ?
0384デフォルトの名無しさん2009/01/02(金) 22:20:53
牛肉だろ
0385デフォルトの名無しさん2009/01/02(金) 22:51:07
ロベール先生にお世話になることにしました
0386デフォルトの名無しさん2009/01/03(土) 03:20:44
2ch終わった
2ちゃんねる、海外企業に譲渡 ― 西村博之氏からPACKET MONSTER INC.へ譲渡完了
http://www.rbbtoday.com/news/20090102/56801.html

ニコニコに移行して2chは完全に切る気やな
0387デフォルトの名無しさん2009/01/03(土) 03:30:31
2chが終わるってのも、思い込みすぎかも。まぁ、2chは巨大になったことだし
もし消滅するなら、また別の人がサーバーを運営するだろうね。
手法などは、既に2chのを参考にすれば済むことだし、著作権だの
知的財産権だの、抵触せずに似たものはいくらでも作れるし。
0388デフォルトの名無しさん2009/01/03(土) 03:35:19
IP記録を始めたときも、終わったというやつは大勢いたが、今まで生き残っている。
少なくともユーザに見限られるということはないだろうとは言える。
0389デフォルトの名無しさん2009/01/03(土) 03:37:26
国内しかも個人が代表に見える格好だと
裁判とか税金とかうるさいから、
スケープゴートとして海外企業に移したんでしょ。

ひろゆきとしては譲渡していいことずくめだろ
0390デフォルトの名無しさん2009/01/03(土) 03:44:35
大雑把に言って、内容は不特定多数の人が書き込んで出来上がっているし、
その不特定多数が消滅しない限り、やはり何かしらこういったコミュニティーは
継続するだろうしね。運営者も費用も必要だが。掲示板そのものに
スタイルはいくつかあれど、誰でもやれることだし。ただ、一生をそんなことに
ささげるだけの覚悟はあるかい?
0391デフォルトの名無しさん2009/01/03(土) 03:55:02
つーか、ガンガン機能追加するわけでもないしね。
運用するだけじゃん。こんな掲示板
アウトソースすればよろし
レスは1000までって制限も永遠と変わんないしw
0392デフォルトの名無しさん2009/01/03(土) 05:38:23
複雑な機能なんていらん
掲示板として書き込み/読み込みというシンプルな機能だけで十分
肥大化して良い事なんて無いってのはC++でもいえる
0393デフォルトの名無しさん2009/01/03(土) 08:35:35
2ちゃんねらーらしくもない話してるな
スルーしろよ
0394デフォルトの名無しさん2009/01/03(土) 11:03:58
protected private継承の違いについて
0395デフォルトの名無しさん2009/01/03(土) 11:12:01
int i,j;
i=0;
while(j=10-i++) ってのはありでつか?
0396デフォルトの名無しさん2009/01/03(土) 11:14:57
ありだけど、キミが期待した通りかはわからん。
0397デフォルトの名無しさん2009/01/03(土) 11:15:30
えぇ、変数って2個いっぺんに宣言できるの!?

ってかありなんじゃない
0398デフォルトの名無しさん2009/01/03(土) 11:26:55
>>395
おそらく"ってのはありでつか?"がエラーになる
0399デフォルトの名無しさん2009/01/03(土) 11:49:30
文法上問題は無いが、何か気持ちは悪い。
0400デフォルトの名無しさん2009/01/03(土) 12:03:01
>>395
あり。そう書いたとおりに動く。
0401デフォルトの名無しさん2009/01/03(土) 12:22:43
>>395の話がCの宿題スレでよく分からん議論になってる
0402デフォルトの名無しさん2009/01/03(土) 12:28:17
少なくとも、読むときには困るコードだな
0403デフォルトの名無しさん2009/01/03(土) 13:13:25
>>401
おそらく>>395が向こうで代入式!代入式!ってファビョってる奴だと思う。
追い詰められてこっちに助けを求めてきたんだろ。
0404デフォルトの名無しさん2009/01/03(土) 13:20:32
printfでも入れてコンパイル&動かせばいいだけじゃん > ファビオジニオール
0405デフォルトの名無しさん2009/01/03(土) 13:51:18
なるほど、宿題スレか。
宿題の回答としてはまずいと思うけどな。
わけもわからず写して動作聞かれたら困るべ。
0406デフォルトの名無しさん2009/01/03(土) 13:52:50
>>403
お前がコンパイラが通すから良しといっている基地外だというこは分かったから、
いつまでも必死にファビョってなさいw
0407デフォルトの名無しさん2009/01/03(土) 13:55:38
本人登場w
0408デフォルトの名無しさん2009/01/03(土) 13:56:14
>>403
見えない敵と必死に戦う低レベル講師乙。コードを客観的に考えるのと、
主観ばかりで意見する相手に対して、罵詈雑言で返すだけの無能は
黙っていた方が墓穴を掘らなくて済むぞw
0409デフォルトの名無しさん2009/01/03(土) 14:03:49
>>408
キモッ
0410デフォルトの名無しさん2009/01/03(土) 14:12:17
>>408
お前の発言が主観ではなくなんだと言うのだ
0411デフォルトの名無しさん2009/01/03(土) 14:14:20
408は自己紹介としては良く出来てると思うぜ。
0412デフォルトの名無しさん2009/01/03(土) 14:21:00
ん?
>>408の日本語がよく分からんのだが、
"コードを客観的に考え"てるのが誰で
"主観ばかりで意見する"のが誰で
"罵詈雑言で返すだけの無能"が誰だって?
0413デフォルトの名無しさん2009/01/03(土) 14:22:11
>>395は、くせぇくせぇ、○ンコの臭いがぷんぷんすんぜ、こりゃ〜生っ粋のクソースだ。
間違いねぇ、クソ麻呂のクソースだぜ、ぷぷぷw
0414デフォルトの名無しさん2009/01/03(土) 14:34:49
マジレスするとgccだとコンパイル通らないよ
警告: 真偽値として使われる代入のまわりでは、丸括弧の使用をお勧めします
だってさ
0415デフォルトの名無しさん2009/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

0416デフォルトの名無しさん2009/01/03(土) 14:36:49
>>414
そりゃ、警告だ
コンパイルエラーじゃない
0417デフォルトの名無しさん2009/01/03(土) 14:38:13
警告をエラーにするオプションを立てればエラーにはなる。一応。
0418デフォルトの名無しさん2009/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になったのでしょうか?
0419デフォルトの名無しさん2009/01/03(土) 14:44:07
関係ない部分を削ってから質問した方がいいよ
04204192009/01/03(土) 14:44:54
↑ 「ソースコードの」、関係ない部分を
0421デフォルトの名無しさん2009/01/03(土) 14:45:49
ソースは全部あげたほうがいいだろ。
どこが「関係ない部分」かわかるくらいなら自分で問題解決できるって。
0422デフォルトの名無しさん2009/01/03(土) 14:46:18
>>418
HEADER2 + name[254] = 8 + 254 = 262
ってそのまんだだと思うが
04234192009/01/03(土) 14:47:48
で、ソースを見たが、8 + 254 はどう考えても 262
0424デフォルトの名無しさん2009/01/03(土) 14:47:54
足し算w
04254192009/01/03(土) 14:48:48
>>421
まぁそうか・・・HEADER1はどう考えても関係ないんだが。スマソ
0426デフォルトの名無しさん2009/01/03(土) 14:48:54
なんで260になると思ったのか説明して欲しい。
0427デフォルトの名無しさん2009/01/03(土) 14:49:19
>>418の頭の中のバグを直すのは難しいw
消防からやりなおせってとこか
0428デフォルトの名無しさん2009/01/03(土) 14:49:23
パディングの話だろ。
0429デフォルトの名無しさん2009/01/03(土) 14:49:28
>422
HEADER2はHEADER1のname[254]をコメントアウトしているので
HEADER2 + name[254] = HEADER1に何でならないのかと思いまして.
0430デフォルトの名無しさん2009/01/03(土) 14:51:06
それぞれ全く無関係だから。
0431デフォルトの名無しさん2009/01/03(土) 14:51:14
パディングとかアラインメントとかでググれ
0432デフォルトの名無しさん2009/01/03(土) 14:52:31
なんかバカが紛れ込んでて話をややこしくしてるな。
>>422>>423>>424>>426>>427>>430 あたりは無視してよろしい。
0433デフォルトの名無しさん2009/01/03(土) 14:53:03
いやいや、型の定義は (おまえの疑問とは) 関係ないよ。
printfで出力された値を見れば、ただ足し算するだけ。

定義のところに疑問があるなら、疑問を持つべきは最後のprintf文じゃないでしょ?
0434デフォルトの名無しさん2009/01/03(土) 14:53:56
>>433
だから分からん奴は黙っとけ。
04354182009/01/03(土) 14:54:25
パディングでぐぐったら答えが出てきました.初めて知ったよ.
みなさんありがとう.
0436デフォルトの名無しさん2009/01/03(土) 14:54:32
お前は代入式ってファビョってりゃいいんだよw
0437デフォルトの名無しさん2009/01/03(土) 14:55:41
>>436
クソワロタ
0438デフォルトの名無しさん2009/01/03(土) 14:57:26
パディングやアラインメントならsizeof(HEADER2)の値が6じゃないのを疑問に思うのが普通じゃね?
0439デフォルトの名無しさん2009/01/03(土) 14:57:34
数字だけ言うんだもん、足し算の問題だと思うわ
結局日本語で理解できなかったよ
0440デフォルトの名無しさん2009/01/03(土) 14:58:38
>>434
まぁ解決したからいいいけど、2個目のprintfでHEADER2のサイズが HEADER1 - 256
になってない時点で疑問に思うべきだってことだよ
0441デフォルトの名無しさん2009/01/03(土) 15:20:54
>>436
きもいぃ〜〜〜〜はいっ、きっ、もっ、いっ、キモイ!きっ、もっ、いっ、キモイ!
キモイィ〜〜〜〜
0442デフォルトの名無しさん2009/01/03(土) 15:25:47
なんか頭のおかしい基地外が、自分の不備を指摘されてファビョってまつねw
あのwhile文の中は、条件式が適切なのに、代入式で済ませているなんて、
プログラマー失格だろ。コンパイラが警告しているのに、アホ過ぎ。黙ってろよ、ド素人w
0443デフォルトの名無しさん2009/01/03(土) 15:29:52
簡単な質問で申し訳ないのですが
visual stdio 2005 無償版でデバッグ開始してみたところ
「0x0040115d でハンドルされていない例外が発生しました: 0xC0000094: Integer division by zero」
というメッセージがでて実行中に強制終了してしまいました。

これってどうすればいいんでしょうか・・・?
0444デフォルトの名無しさん2009/01/03(土) 15:30:39
Linuxでは代入が正解だ。
オープンソースも知らない素人は黙っとけよ。
恥ずかしい奴だな。
0445デフォルトの名無しさん2009/01/03(土) 15:32:30
なんか一匹、年明け早々、必死に基地外っぷりを発揮していますね(^ー^)v
アァ〜〜キモッキモッ、きっと鏡を見ると、キモイ面が映っているんでしょうね。
現実に目を向けようぜ、こんな文字列ばかりのスレじゃなくて、さ?
0446デフォルトの名無しさん2009/01/03(土) 15:33:00
>>443
ゼロで割ることはできない。
0447デフォルトの名無しさん2009/01/03(土) 15:33:15
>>443
何かを0で割ったんじゃね?
0448デフォルトの名無しさん2009/01/03(土) 15:34:57
代入式でも条件式でも「式」でありさえすればなんでもいいのがCの仕様。
バカが条件式限定だと思い込んで恥をさらしてファビョりまくってるのが現状。
0449デフォルトの名無しさん2009/01/03(土) 15:35:13
パディングって、詰め物だっけ
コンパイラの最適化って、害悪だと思う
0450デフォルトの名無しさん2009/01/03(土) 15:36:00
最適化がなかったら困ったことになると思うが。
0451デフォルトの名無しさん2009/01/03(土) 15:36:44
>>449
もう一度勉強しようね
0452デフォルトの名無しさん2009/01/03(土) 15:37:19
>>446-447さん
ありがとうございました。解決したみたいです。
0453デフォルトの名無しさん2009/01/03(土) 15:37:28
>>443
デバッグ開始してるなら、中断とか継続とか出ると思う。
中断すれば該当行にカーソルが行く。
その行で割り算してて、割る数が0なんだろう。

変数にマウスカーソルあてると数値見えたりもする。
0454デフォルトの名無しさん2009/01/03(土) 15:37:56
>>443
visual stdioなんか使うからだろ。
gcc使え。
gccなら0除算OKだ。
いまどき0除算もできないコンパイラなんてM$製くらいだ。
これだからドザは駄目なんだよ。
0455デフォルトの名無しさん2009/01/03(土) 15:38:37
パディングってワード間隔でデータを区切って
実行速度を速める為の手法だっけ
0456デフォルトの名無しさん2009/01/03(土) 15:38:42
>>442
式は値を持つんだから、なんの問題も無いだろ。
警告がいやなら、while ((j=0-i++)) とでもすればいい。
なにも知らないド素人は黙ってろよw
0457デフォルトの名無しさん2009/01/03(土) 15:38:50
>>444
これって乱数で過去レスを切り貼りするスクリプトでしょ。
0458デフォルトの名無しさん2009/01/03(土) 15:39:24
やたらからんでくる愚かものがいるなw
さすが、言語スレ

いつまでも、こんな言語仕様のスレみてるのなんて学生ばっかだっつーの
0459デフォルトの名無しさん2009/01/03(土) 15:39:52
みんな親切だな。
英和辞書引け、でいいのに。
0460デフォルトの名無しさん2009/01/03(土) 15:40:21
>>455
そう
0461デフォルトの名無しさん2009/01/03(土) 15:40:44
>>455
基本的にはそうだが、
アラインメントされてないと
データを読めない CPU もある。
0462デフォルトの名無しさん2009/01/03(土) 15:40:57
ビットフィールドってので、
手動でやる場合もある
0463デフォルトの名無しさん2009/01/03(土) 15:41:00
>>454
0で割るってどういうことか知ってる?
0464デフォルトの名無しさん2009/01/03(土) 15:41:49
>>463
宇宙の法則が乱れる
0465デフォルトの名無しさん2009/01/03(土) 15:42:15
学生や初心者が見るスレだからこそ、間違った知識は叩かれねばならない。
0466デフォルトの名無しさん2009/01/03(土) 15:44:34
>>463
visual stdioが破壊されるってことだろ。
素直にオープンソース使えって。
無理するな。
0467デフォルトの名無しさん2009/01/03(土) 15:45:39
>>460-462
アラインメントをキーワードにググってみた。
説明ありがとー
0468デフォルトの名無しさん2009/01/03(土) 16:21:15
>>458
おいっ、絡まれてまともにレス出来ないなら、お前がレスしなきゃ良くね?
だってここ、誰もお前個人を特定、指定してレスを求めているわけじゃないんだが
言うからには自分の発言に責任を持っているんだろうな?
ほれ、鏡を見ろよ。醜い酷い面が映っただろ?誰だよそれ?
そう、お・ま・え・だよ?分かる?それが現実。自分が見たものはどうこう言うくせに
自分で自分を見られる唯一の手段、何か姿を映し出すものを見た時
己の醜さを目の当たりにするのさ。今のあんたみたく。
あんたの発言、第三者から見れば、きんもぉ〜★だぜ?
■ このスレッドは過去ログ倉庫に格納されています