指针的问题
```c
#include<stdio.h>
#include<string.h>
#define NLEN 30
char* s_get(char *, int );
struct namect
{
char fname[NLEN];
char lname[NLEN];
int letters;
};
void getinfor(struct namect *);
void makeinfor(struct namect *);
void showinfor(const struct namect*);
int main()
{
struct namect person;
//这里写成:struct namect * person;就不行,是野指针的关系?待解决
getinfor(&person);
makeinfor(&person);
showinfor(&person);
return 0;
}
char* s_get(char* str, int n)
{
char* rel_val;
char * find;
rel_val = fgets(str, n, stdin);
if(rel_val){
find = strchr(str, '\n');
if(find)
*find = '\0';
else
while(getchar() != '\n')
{
continue;
}
}
return rel_val;
}
void getinfor(struct namect * pst)
{
printf("Please enter your first name:\n");
s_get(pst->fname, NLEN);
printf("Please enter your last name:\n");
s_get(pst->lname, NLEN);
}
void makeinfor (struct namect* pst)
{
pst->letters = strlen(pst->fname) + strlen(pst->lname);
}
void showinfor(const struct namect * pst)
{
printf("%s\n%s\n%d\n", pst->fname,pst->lname, pst->letters);
}