Проблемы с указателем и структурой - PullRequest
1 голос
/ 05 марта 2012

Я предполагаю, что создаю карту памяти этой программы для моего класса, но когда я пытаюсь скомпилировать ее, я получаю ошибку:

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 ]

2 голосов
/ 05 марта 2012

Вы пропускаете ; в конце предыдущей строки.

Вы не неправильно разыменовываете *(turtle).x вместо *(turtle.x).Оператор . имеет более высокий приоритет, чем оператор *, что означает, что эти два оператора эквивалентны, и вам даже не нужны скобки: вы можете просто сделать *turtle.x.

Проверить этот сайт для порядок старшинства .

2 голосов
/ 05 марта 2012

Вы пропускаете ; в конце предыдущей строки.

Затем компилятор интерпретирует * в начале строки как символ умножения и жалуется, потому что это не так хорошо работает.

0 голосов
/ 05 марта 2012

Вы просто забыли ; после apple->x = &testd оператора.

В примечании стороны, в C вы должны сказать struct перед структурой, а функция main должна возвращать целое число,Вам также необходимо включить заголовочные файлы с объявлениями структур данных и функций, которые вы используете (например, stdio.h).Не говоря уже о том, что // стиль комментария - это C99, а программисты на C его не используют .. /* */ комментарии потрясающие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...