[英]SegFault after taking input from user with fgets()
所以我正在编写一个程序,我想在其中获取客户的信息,但是在我输入名称后,出现了 Segmetation 错误(核心愚蠢),我不明白为什么,我之前运行过类似的代码并且它运行得很好。 这是我的代码:
#include <stdio.h>
#include <string.h>
struct Customer
{
char* first_name;
char* last_name;
int age;
char* password;
};
struct Customer customer;
void get_customer_info()
{
printf("Enter your first name: ");
fgets(customer.first_name, 30, stdin);
}
int main(void)
{
get_customer_info();
printf("%s\n", customer.first_name);
return 0;
}
这是典型的初学者错误。 您没有为struct
的字段分配内存。
尝试将结构重写为:
struct Customer
{
char first_name[100];
char last_name[100];
int age;
char password[100];
};
或者,您可以使用malloc()
分配内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.