Win32API質問箱 Build90

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2010/11/08(月) 00:14:31
VC++2005以降のnew T[x]はsizeof(T) * xのオーバーフローをチェックするので
いちいちsizeof(DWORD)で割らなくて宜しい

と言いたいのでは?
953デフォルトの名無しさん:2010/11/08(月) 00:16:49
わざわざエラーリスク背負わなくても

>>892で十分
954デフォルトの名無しさん:2010/11/08(月) 00:19:49
エラーリスク(笑)
955デフォルトの名無しさん:2010/11/08(月) 00:26:45
>>952
少なくとも>>891ではxが既にオーバーフローしてる場合にはそのチェックでは防げん
956デフォルトの名無しさん:2010/11/08(月) 00:31:05
ここの住人は簡単な話題には積極的に突っ込みますよ
957デフォルトの名無しさん:2010/11/08(月) 00:33:46
>>955
はあ?

if(width==0 || height==0 || (SIZET_MAX/width) < height) {
こう書いたらwidth*heightはオーバーフローしないよ?
958デフォルトの名無しさん:2010/11/08(月) 00:34:00
(割と最近登場した)intsafe.hも使おうよ。
959デフォルトの名無しさん:2010/11/08(月) 00:38:50
>>945>>955
算数もできないコイツらって何なの?
960945:2010/11/08(月) 00:42:04
>>951
何に対してのオーバーフロー対策?
width、height?

俺も>>957でいいんでね?と思ってるから、sizeof(DWORD)で
割る理由が分からないのだが。。。
961デフォルトの名無しさん:2010/11/08(月) 00:43:41
>>960
マジで小学校からやり直したら?
962945:2010/11/08(月) 00:43:44
×:width、height?
○:width*height?
訂正
963CopyRect:2010/11/08(月) 00:44:15
おいお前らAPIの話をしろ
964デフォルトの名無しさん:2010/11/08(月) 00:45:27
widthやらの数値型の範囲に収まればいいんだからDWORDのサイズは関係ないよね
965デフォルトの名無しさん:2010/11/08(月) 00:48:33
あとはきれいにnewが失敗してくれる
966デフォルトの名無しさん:2010/11/08(月) 00:49:35
文字を使った不等式は中学校の範囲か
とりあえず>>945がリア小じゃなかったら日本の未来は終わりだ
967デフォルトの名無しさん:2010/11/08(月) 00:50:55
size=width*heightとしてsizeof(DWORD)*sizeがオーバーフローする事は分からんのか?
968945:2010/11/08(月) 00:52:55
>>967
つまり、newで確保したメモリサイズの保持内部変数がオーバーフローするって事でおk?
969デフォルトの名無しさん:2010/11/08(月) 00:54:27
こいつ真性の馬鹿か?
width=height=40000でも代入して計算してみろよ
970デフォルトの名無しさん:2010/11/08(月) 01:05:26
まあいろんな前提もかかずにあの式だけじゃあ憶測も飛ぶわな
そもそもwidthはintなのかint64なのかで話が違っても来る
こんな未定義状態で議論するもんじゃないよ
しかも>>891は悪い例で出てるんだ。解釈できたところで威張っても仕方なかろう
971945:2010/11/08(月) 01:05:44
ん?
40000*40000=1600000000=5F5E1000 < SIZET_MAX(FFFFFFFF)
で、この時点でオーバーフローはしてないよな。

で、なんで
SIZET_MAX/sizeof(DWORD) = 3FFFFFFF
と比較してるんだ?と質問してるのだが。
972デフォルトの名無しさん:2010/11/08(月) 01:10:34
>>970
はぁ?>>891は良い例だろ

>そもそもwidthはintなのかint64なのか
SIZET_MAXを割ってるんだからsize_tと等価かそれより小さい符号無し整数型なのは読み取れるだろ

無能が多すぎるぜ…
973デフォルトの名無しさん:2010/11/08(月) 01:10:51
974デフォルトの名無しさん:2010/11/08(月) 01:13:10
>>971
width=height=0x9C40
width*height=0x5F5E1000
width*height*sizeof(DWORD)=0x17D784000 ←SIZET_MAX=0xFFFFFFFFだとオーバーフロー

もう来るなぼけ
975デフォルトの名無しさん:2010/11/08(月) 01:13:52
>>972
悪い例だよ
こんなのを書いてたら君、落第するよ
976デフォルトの名無しさん:2010/11/08(月) 01:17:14
>>945とか>>970みたいなアホはプログラマーじゃないよね
977945:2010/11/08(月) 01:19:58
>>974
>width*height*sizeof(DWORD)=0x17D784000 ←SIZET_MAX=0xFFFFFFFFだとオーバーフロー
だから、「何が」オーバーフローするのか書けよ。
978デフォルトの名無しさん:2010/11/08(月) 01:21:09
>>977
>>967

とうとう日本語まで読めなくなったか
979デフォルトの名無しさん:2010/11/08(月) 01:22:24
画像のサイズを扱ってるならそれぞれ10000超えたら怪しいし、
width*heightが1000万超えたあたりからちょっと怪しいとか、
そういう判断は付くだろ。
オーバーフローとかそんなこと言ってる以前の問題だ。
常識で考えろ。
980デフォルトの名無しさん:2010/11/08(月) 01:23:58
>>977
頭大丈夫か?
981デフォルトの名無しさん:2010/11/08(月) 01:25:44
オーバーフローあげ
982デフォルトの名無しさん:2010/11/08(月) 01:27:22
SIZET_MAX = 0xFFFFFFFF
sizeof(DWORD) = 4

width = 0x3FFFFFFF
height = 0x2

こうした場合の動作は正しいのか
983デフォルトの名無しさん:2010/11/08(月) 01:31:45
まだ分かってないやつがいるw
984945:2010/11/08(月) 01:34:02
>>978
間違えた。
sizeof(DWORD) をかける必要は何?

最初からこれの意味が分からないのだ。
985デフォルトの名無しさん:2010/11/08(月) 01:38:32
986デフォルトの名無しさん:2010/11/08(月) 01:39:18
そろそろ
次スレ
たてたほうがいいとおもう
987デフォルトの名無しさん:2010/11/08(月) 01:43:20
イラネ
988デフォルトの名無しさん:2010/11/08(月) 01:43:27
KeBugCheckEx を呼び出すには、どのライブラリをリンクすればいいのでしょう?


MSのサイト
ttp://msdn.microsoft.com/en-us/library/ff551961(VS.85).aspx
には ntoskrnl.lib に含まれると書いてますが ntoskrnl.lib を加えても
「未解決の外部参照」って言われます。
(「パスが見つかりません」とかは出ないのでライブラリ自体は認識している模様)
989945:2010/11/08(月) 01:44:53
>>985
で、要求したら何がオーバーフローするの?

width*height > SIZET_MAX/sizeof(DWORD)
の場合、
new (std::nothrow) DWORD[width*height];
が単にメモリ確保に失敗するだけ?
990デフォルトの名無しさん:2010/11/08(月) 01:47:41
new x[y] はコンパイラが operator new[](sizeof(x)*y) に展開しているのを知らないのか。
991デフォルトの名無しさん:2010/11/08(月) 01:52:02
>>990
ダウト
992デフォルトの名無しさん:2010/11/08(月) 01:55:25
>>989
アセンブリリスティングとか見たことないの?
そんなレヴェルでC++を使ってるなんて信じられない
993945:2010/11/08(月) 01:57:35
抽出結果:
>アセンブリリスティング
>レヴェル
994デフォルトの名無しさん:2010/11/08(月) 01:58:56
ちょっとトイレ
995デフォルトの名無しさん:2010/11/08(月) 01:59:55
とりあえず 945 は今すぐ C++ から卒業しなさい。
996デフォルトの名無しさん:2010/11/08(月) 02:00:31
>>994
エロい行為は禁止です。
997デフォルトの名無しさん:2010/11/08(月) 02:01:52
998デフォルトの名無しさん:2010/11/08(月) 02:02:29
以上、チンパンジー並みの脳味噌を持つ>>945とそれに群がる乞食のショーをお送りしました。
では、次スレでお会いしましょう。
999945:2010/11/08(月) 02:05:22
釣れた釣れたw
1000デフォルトの名無しさん:2010/11/08(月) 02:05:49
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。