【问题标题】:how to store a user input into a variable whith the type of char *?如何将用户输入存储到 char * 类型的变量中?
【发布时间】:2021-03-17 01:47:06
【问题描述】:

这是我的代码 它不起作用。我认为问题出在 scanf 行。如果你们能帮帮我

char * name;
name = "random name";
puts(name);

printf("Enter a name: ");
scanf("%s", name);
puts(name);

【问题讨论】:

    标签: pointers char


    【解决方案1】:

    回答 1

    你需要先使用ma​​lloc分配一些内存,然后释放内存,你的指针在声明时是垃圾值。

    char * name;
    printf("Enter a name: ");
    
    name = malloc (sizeof (char) * 81);
    fgets (name, 80, stdin);
    
    puts(name);
    free(name);
    

    来源:(Taking input string from keyboard in C using pointer notation?)

    答案 2

    我建议使用固定的 char 数组值。干净,安全,不需要做内存管理。

    char name[20];
    
    printf("Enter a name: ");
    scanf("%s", name);
    puts(name);
    

    【讨论】:

      猜你喜欢
      • 2022-08-02
      • 2018-09-18
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多