【发布时间】:2017-09-08 04:23:01
【问题描述】:
编译器吐出错误说 can't convert "int to lin" and can't convert 当我的指针明显指向正确的位置时,“double to lin”。
typedef struct lin
{
int data;
float next;
}ode;
void main()
{
ode*head;
ode a;
head=&a;
*head=9;
head++;
*head=10.5;
getch();
}
【问题讨论】:
-
请学会使用正统的缩进样式,不要将多个语句放在一行中。
-
试试
*head=9; head++; *head=10.5;-->head->data = 9; head->next = 10.5; -
是的,
head指向a,因此您可以指定head->data = 9;和head->next = 10.5;。增量使head指向一个不确定的位置——在增量之后你不能安全地取消引用它。或者,对于 C99,您可以使用复合文字编写*head = (ode){ 9, 10.5 };;甚至*head = (ode){ .next = 10.5, .data = 9 };也使用指定的初始化器。 -
您是否尝试使用联合而不是结构?