Wątek przeniesiony 2014-11-03 18:10 z C/C++ przez ŁF.

Zwracanie wartości w funkcji

0

mam taki mały problem... oto kod

void obliczenia_3d(double kat_x,double kat_y,double & kat_z)
{
    double xx,yy,zz;
    xx=cos(kat_y*M_PI/180)*x+sin(kat_y*M_PI/180)*z;
    zz=-sin(kat_y*M_PI/180)*x+cos(kat_y*M_PI/180)*z;
    x=xx;
    z=zz;

    yy=cos(kat_x*M_PI/180)*y-sin(kat_x*M_PI/180)*z;
    zz=sin(kat_x*M_PI/180)*y+cos(kat_x*M_PI/180)*z;
    y=yy;
    z=zz;

    xx=cos(kat_z*M_PI/180)*x-sin(kat_z*M_PI/180)*y;
    yy=sin(kat_z*M_PI/180)*x+cos(kat_z*M_PI/180)*y;
    x=xx;
    y=yy;
} 

i wywala błąd na tym & koło kat_z... jak mam to zapisać, żeby działało?

0

To wygląda jak kod C++, który próbujesz skompilować w C. Masz dwie opcje:

  1. Zamień kat_z na wskaźnik - double*, a wszystkie wywołania na (*kat_z), ale to nie wydaje się mieć sensu, bo tylko czytasz tę wartość, a do tego musiałbyś zmieniać wszystkie wywołania.
  2. Usuń & i przyjmuj argument przez kopię.

1 użytkowników online, w tym zalogowanych: 0, gości: 1