指针和结构问题

时间:2012-03-05 00:06:00

标签: c pointers

我想为我的班级创建这个程序的内存映射,但是当我尝试编译它时,我收到一个错误:

invalid operands to binary expression ('double *' and 'double *')

我是学生,请不要编辑代码打印内存位置,我需要自己编写。

main()
{
double testd;
int testi;
FILE *fpt;

struct frog {
    double *x, y;
}frog;

struct frog turtle, *apple, tv[3];

testi = 2;

apple = &turtle;
apple->x = &testd

*(turtle).x = 7.3;    //this is where im getting the error. 
(*apple).y = 3.6;

turtle.y = 1.5;

for (testi = 0; testi < 3; testi++)
    tv[testi].x = &(tv[(testi+1)%3].y);

*(tv[1].x) = 6.4;
}

3 个答案:

答案 0 :(得分:2)

您错过了上一行末尾的;

编译器然后将行开头的*解释为乘法符号并抱怨,因为它没有那么好用。

答案 1 :(得分:2)

您错过了上一行末尾的;

取消引用*(turtle).x代替*(turtle.x) 错误。 .运算符的优先级高于*运算符,这意味着这两个语句是等效的,您甚至不需要括号:您可以*turtle.x

在此网站上查看precedence ordering

答案 2 :(得分:0)

您在;声明之后忘了apple->x = &testd

在旁注中,在C中你必须在结构之前说struct,而main函数应该返回一个整数。您还需要包含头文件,其中包含您正在使用的数据结构和函数的声明(即stdio.h)。更不用说//评论风格是C99,而C程序员并没有真正使用它。/* */评论很棒。