怎么返回结构体对象的值
#include<stdio.h>#include<stdlib.h>
int addNum(struct Sort *num);
int getinput(struct Sort *num);
struct Sort
{
int x;
struct Sort *next;
};
int getinput(struct Sort *num)
{
printf("请输入一个整数:");
scanf("%d",num->x);
putchar('\n');
printf("input:%d\n",num->x);
return num->x;
}
int addNum(struct Sort **head)
{
struct Sort *num;
num = (struct Sort *)malloc(sizeof(struct Sort));
int n;
getinput(num);
n = getinput(num);
return n;
}
int main(void)
{
struct Sort *temp;
struct Sort *num = NULL;
int n;
printf("输入-1结束输入\n");
while(1)
{
addNum(&num);
n = addNum(&num);
printf("%d",n);
if (n == -1)
{
break;
}
}
return 0;
}
我想让函数addNum返回用户输入的值来进行判断是否退出循环,但是这个样子返回的值是一大串数字,请问应该如何修改。 把30行和45行删掉。他们重复了。每一个函数不要单独调用。 scanf("%d",num->x);
使用
scanf("%d",&num->x); f-wind 发表于 2020-2-7 13:53
scanf("%d",num->x);
使用
scanf("%d",&num->x);
能告诉我为什么吗?不是很理解。num不是指针吗,为什么还要取地址? 召唤风云 发表于 2020-2-7 13:36
把30行和45行删掉。他们重复了。每一个函数不要单独调用。
这的确也是个BUG,谢谢。 Albertdjy 发表于 2020-2-7 19:24
能告诉我为什么吗?不是很理解。num不是指针吗,为什么还要取地址?
你输入的是x的值,而不是num的值。所以需要取地址。 召唤风云 发表于 2020-2-7 19:51
你输入的是x的值,而不是num的值。所以需要取地址。
懂了,谢谢指导
页:
[1]