菜鸟求助!
1、程序输不出stu.name#include<stdio.h>
struct student
{
int number;
char *name;
}stu={1,"we",2,"are"};
void main()
{
int i;
for(i=0;i<2;i++)
{
scanf("%d %s",&stu.number,&stu.name);
}
printf("%s",stu.name);
}
2、然后我认为stu.name已经表示为地址了,就把&去掉,结果只能输入一组数据,第二组数据无法输入
以上两个问题是为什么呢?请大佬指教!!! #include <stdio.h>
struct student
{
int number;
char name;
} stu;
int main(void)
{
int i;
for(i = 0; i < 2; i++)
{
scanf("%d %s", &stu.number, stu.name);
}
printf("%s", stu.name);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
struct student
{
int number;
char *name;
} stu;
int main(void)
{
int i;
for(i = 0; i < 2; i++)
{
stu.name = malloc(100);
scanf("%d %s", &stu.number, stu.name);
}
printf("%s", stu.name);
return 0;
}
人造人 发表于 2020-3-24 02:39
加了stu.name = malloc(100);这语句之后报错耶 人造人 发表于 2020-3-24 02:37
为什么char *name不行呢? hsk123456 发表于 2020-3-24 17:06
为什么char *name不行呢?
这个指针指向哪里? 人造人 发表于 2020-3-24 17:23
这个指针指向哪里?
我想通过stu.name输入一个字符串,是因为指针变量name没确切的指向,所以无法输入吗? hsk123456 发表于 2020-3-24 18:00
我想通过stu.name输入一个字符串,是因为指针变量name没确切的指向,所以无法输入吗?
嗯 人造人 发表于 2020-3-24 18:01
嗯
那要怎样才能使用这个指针呢?{:10_269:} hsk123456 发表于 2020-3-24 18:08
那要怎样才能使用这个指针呢?
让它指向可用的内存位置 人造人 发表于 2020-3-24 18:16
让它指向可用的内存位置
ok!谢谢啦!!!
页:
[1]