结构体的一个问题
#include <stdio.h>#define Q 1
struct person {
char *name;
int phone;
};
void main()
{
int i;
struct person man1;
for(i=0;i<Q;i++)
{
printf("输入姓名:");
scanf("%s",&man1.name);
printf("输入电话号码:");
scanf("%d",&man1.phone);
}
for(i=0;i<Q;i++)
{
printf("%s\t%20d",man1.name,man1.phone);
}
system("pause");
}
为什么name用指针形式*name表示后就无法输出了,用数组形式就可以正常输出https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif 没有分配空间,字符串存哪呢? xieglt 发表于 2020-11-22 19:20
没有分配空间,字符串存哪呢?
那要是用*name的形式应该要怎么输出呢https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif structpersonman;
man. name=(char *)malloc(16);
先分配空间,才能使用。 xieglt 发表于 2020-11-25 07:02
structpersonman;
man. name=(char *)malloc(16);
先分配空间,才能使用。
还是不行,输出会强制停止
struct person man1;
for(i=0;i<Q;i++)
{
man1. name=(char *)malloc(32);
printf("输入姓名:");
scanf("%s",&man1.name);
printf("输入电话号码:");
scanf("%d",&man1.phone);
}
printf("%s\t%d",man1.name,man1.phone);
页:
[1]