この人頭いいなと思ったエピソード

Strは構造体。sizeof(Str)の値は106
TotalSizeはvector<Str> SendLogでのSendLog.size()
SendSizeは送信バイト数

while( SendSize < TotalSize*sizeof(Str) )
{
----SendSizeBuf = send();
----if( SendSizeBuf > 0 )
--------SendSize += SendSizeBuf;
----else
--------Log.Flag = 0;
}
このようなwhile文があった時、
printf( "%d,%d\n",SendSize, TotalSize*sizeof(Str) );
をsend()の前に入れると
106,106
という数値が現れるのにwhile文から抜けることがありません。
どうしてなのでしょうか

A 回答 (1件)

106,106の時にSendSizeBufが0以下になっていませんか?


その場合106,106 → 106,106 → 106,106...と無限ループになる論理だと思いますが・・
    • good
    • 0
この回答へのお礼

そこを見落としていました。
ありがとうございます。

お礼日時:2013/07/06 22:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!