#define N 10
int main(int argc, char *argv[])
{
int *a = malloc(sizeof(N));
int i;
for(i = 1; i < argc; i++) {
*(a++) = atoi(argv[i]);
}
i = 0;
while(i < N) {
printf("%d ", *(a++));
i++;
}
}
なぜ私の出力がすべて0であるのか混乱しています。私はコマンドラインの引数/ポインタを初めて使っているので、それを修正する方法はわかりません。このプログラムの背景は、整数をとり、atoiを使って文字列を整数に変換し、ポインタ算術を使って新しい配列を出力することです。コマンドライン引数の出力を修正して正しい整数を出力するにはどうすればよいですか?
を供給する場合は、任意の4つの以上の引数を与える場合、これはセグメンテーションフォールトすべきセグメンテーションフォールトます
ポインタをmallocするとインクリメントしません。配列構文を使用します。 –
@Tibrogargan私が10の入力を入力したとき、私はseg faultを得ていませんでした。ただ0の出力 – EnglishStudent62