私は言語 C にかなり慣れていないので、ポインターと動的メモリ割り当てに少し混乱しています。私がやろうとしているのは、コマンド ライン引数を読み取り、それらを動的メモリ割り当てに格納することです。次にそれらを印刷します。たとえば、./rpd 4 3 2 3 8 と入力すると、argv[1] (4) が減分され、他の 3 つの値 (3、2、3、8) が続くはずです。出力は次のようになります。
人 1 は 3 台の車を持っています。人 2 は 2 台の車を持っています。人 3 は 3 台の車を持っています。人 4 は 8 台の車を持っています。
私のコードは次のとおりです。
#include <stdio.h>
int main(int argc, char *argv[]) {
/** argc is number of arguments at command line*/
/** argv[] is an array of pointers to character strings
i.e. argv 1 points to argc 1 */
int numberOfCars;
char *person;
int i;
int j;
// Allocate the size of the array for each element of char
person = malloc(sizeof(numberOfCars) *argc);
for(i = 2; i < argc; i++) {
/** Convert char to int */
numberOfCars = atoi(argv[i]);
person = atoi(argv[1]);
if(person > 0){
for(j = 2; j < person; j--) {
printf("Person %d has %d cars \n", person--, numberOfCars);
}
} else {
/** DO NOTHING */
}
}
return person;
}
これが私にとって少し混乱している(または素朴な)場合は申し訳ありません。しかし、私はこの言語に非常に慣れていないので、まだすべてを理解しようとしています。
助けてくれてありがとう:)