我对 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;
}
如果这让我有点困惑(或幼稚),我很抱歉;但我对这门语言非常陌生,所以我仍在努力理解一切。
非常感谢您的帮助:)