argv [1]当array和fgets()的长度不同时为null

问题描述 投票:0回答:1

下面的程序运行正常如果给出3个字符,但是一旦给出4个或更多字符-argv [1]变为null。为什么?

#include <stdio.h>

int main(int args, char* argv[]){

    char name[5];

    printf("Enter yor name:");
    fgets(name, 10, stdin);     // delibrate 

    printf("name is: %s \n", name);
    printf("argv is %s \n", argv[1]);
    printf("Final Output - %s %s\n", argv[1] , name);
}

Invoking by - ./test hello

fgets和数组长度的差异如何以及为什么产生这种行为?

c fgets argv gets
1个回答
-1
投票
int main(int args, char* argv[]) argv中是命令行参数(实际上是传递给程序的参数),而不是您接受的输入。
© www.soinside.com 2019 - 2024. All rights reserved.