こんにちは、私は答えることができない練習問題を含むこの本を持っています。いいえ...これは宿題の質問ではありません。これは、私に勧められた「コンピューター システム、プログラマーの視点」という本の独学です。
質問は次のとおりです。
どんな助けでも大歓迎です!
こんにちは、私は答えることができない練習問題を含むこの本を持っています。いいえ...これは宿題の質問ではありません。これは、私に勧められた「コンピューター システム、プログラマーの視点」という本の独学です。
質問は次のとおりです。
どんな助けでも大歓迎です!
length
は署名されていない0
ため、そのパラメーターを渡すと、希望するようにはなりlength - 1
ませUINT_MAX
ん。-1
したがって、ループが実行され、 のサイズの外側にアクセスしますa
。
これを変更するunsigned length to int length
と、コードは完全に実行されます
上記のコードが機能しない理由は
符号なしの長さを使用する場合、長さに 0 を渡すと、ループ内(length - 1)
で範囲を循環し、最大値を取るため、ループでセグメンテーション違反が発生します。