-1

今日、コードを gcc -W -Wall でコンパイルすることにしましたが、解決できない警告が表示されます。

使用している #defines の量を減らそうとしていましたが、 sizeof() が答えになると思いました。他のすべては問題ないように見えますが、この 1 つの警告だけですが、私はかなりイライラしています。

if (1)    // set random id string for this session
    {
    register unsigned int count, until=sizeof(session.id);
    for (count=0;count<until;count++)
        {   session.id[count]=randchar();   }
    session.id[count]=0;
    }

コンパイラから次の警告が表示されます。

warning: array subscript is above array bounds

誰がこれの何が問題なのか教えてもらえますか?

4

2 に答える 2

4

これによるエラー:

session.id[count]=0;

これに変更:

session.id[count - 1]=0;
于 2013-10-26T06:26:38.467 に答える