Использование указателей в функциях и изменение main () - PullRequest
0 голосов
/ 09 февраля 2019

Я хотел бы передать указатель в качестве аргумента в функцию, которая нормализует указатель вектора, который был передан в качестве аргумента.

Вот функции:

float norm(Vector *v) {
    float len;
    len = sqrt(pow(v->x, 2.0) + pow(v->y, 2.0) + pow(v->z, 2.0));
    return len;
}

Vector normalize(Vector *vec){
  Vector normVec;
  //calls norm function which also takes a pointer of vector type as argument
  float norm = norm(&vec);

  normVec.x = vec->x/norm;
  normVec.y = vec->y/norm;
  normVec.z = vec->z/norm;

  return normVec;
}

Я получаю эту ошибку: ошибка: вызванный объект 'norm' не является функцией или указателем на функцию.
Как мне запустить эту функциюгладко?

1 Ответ

0 голосов
/ 09 февраля 2019

Это потому, что ваша переменная float norm скрывает функцию norm().
Назовите одну из них как-нибудь еще.


Кроме того, vec уже является указателем, нет необходимостивозьмите его адрес (&vec), когда передадите его norm()

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