これは私がたくさんのものを印刷してテストしてきたものですが、何らかの理由で完全に理解できないケースが1つあります.
後で使用する関数に引数として整数を渡す必要がありますが、正しく格納されていることを確認するために再度出力すると、乱数が得られます。これは、コードの関連部分です。
int num_bytes = argv[1];
....
printf("Max number of bytes: %d", num_bytes);
関数に引数を 1 つだけ渡しましたが、これは int でした。また、argv[1] を int としてキャストしようとしましたが、それもうまくいきませんでした。これがprintfの問題かどうかはわかりません。それだけなら申し分ありません。値をintとして適切に保存したことを知る必要がありました。argv が文字列へのポインターの配列であることは知っていますが (C 文字列だと思いますか?)、文字を int にキャストできると思いました。