私はsprintfを使って整数を文字列に変換するプログラムを書いています。より多くのコンテキストを提供するために、私のプログラムには親プロセスがあり、与えられたコマンドライン引数の合計を計算するのに必要な数の子を生成します。各子プロセスは、2つの引数を受け取り、計算します。その全体の部分は簡単だった、それは私を混乱させている戻りプロセスです。私は総額を取り戻しています。今はそれらを文字列に変換する必要があります。sprintfは同じ文字列を返し続けます
argv[0] = ./master
argv[1] = 15
argv[2] = 15
argv[3] = 15
argv[4] = 15
etc...
私は理解することはできません:
argv[0] = ./master
argv[1] = 3
argv[2] = 7
argv[3] = 11
argv[4] = 15
etc...
私はこれを取得:だから私は、代わりにこのような出力を得るための、しかし、このような何かがうまくいく
for(int i=1; i<10; i++) {
if (array[i] == 0) {
break;
}
temp = array[i];
sprintf(sums, "%d", temp);
argv[i]=*sums;
}
for (int i=0; i<10; i++) {
printf("argv[%d]: %s\n", i, argv[i]);
}
を考えましたなぜ最後の合計が繰り返されているのか私はsprintfを使用している方法と関係があると感じていますが、これを把握しようと一日を費やしてしまいました。私は合法的に立ち往生しています。ちなみに、私は
int array[10]={0};
'ARGV [I] = *合計;'あなたは、文字列をコピーする方法はありません。また、 'argv'を上書きすることは非常に貧弱です。 –
メモリを割り当てて文字列をコピーするには:[strdup](https://linux.die.net/man/3/strdup) – kaylum
申し訳ありません、私はプログラミングを始めました。 for-loopの外側にメモリを割り当てる必要がありますか? –