1

これは私がたくさんのものを印刷してテストしてきたものですが、何らかの理由で完全に理解できないケースが1つあります.

後で使用する関数に引数として整数を渡す必要がありますが、正しく格納されていることを確認するために再度出力すると、乱数が得られます。これは、コードの関連部分です。

int num_bytes = argv[1]; 
....
printf("Max number of bytes: %d", num_bytes);

関数に引数を 1 つだけ渡しましたが、これは int でした。また、argv[1] を int としてキャストしようとしましたが、それもうまくいきませんでした。これがprintfの問題かどうかはわかりません。それだけなら申し分ありません。値をintとして適切に保存したことを知る必要がありました。argv が文字列へのポインターの配列であることは知っていますが (C 文字列だと思いますか?)、文字を int にキャストできると思いました。

4

2 に答える 2

5

char **argv文字の配列 (または文字列) と見なされます。argv最初に内の値を整数に変換する必要があります。

これは次の方法で実行できますatoi

int num_bytes = atoi(argv[1]);
于 2012-05-08T03:31:01.873 に答える
0

argv は文字列の配列へのポインタです。渡した整数引数を取得するには、atoi(argv[1]) を呼び出す必要があります。

于 2012-05-08T03:35:10.227 に答える