【发布时间】:2021-03-17 01:47:06
【问题描述】:
这是我的代码 它不起作用。我认为问题出在 scanf 行。如果你们能帮帮我
char * name;
name = "random name";
puts(name);
printf("Enter a name: ");
scanf("%s", name);
puts(name);
【问题讨论】:
这是我的代码 它不起作用。我认为问题出在 scanf 行。如果你们能帮帮我
char * name;
name = "random name";
puts(name);
printf("Enter a name: ");
scanf("%s", name);
puts(name);
【问题讨论】:
回答 1
你需要先使用malloc分配一些内存,然后释放内存,你的指针在声明时是垃圾值。
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);
【讨论】: