有人可以向我解釋下面的兩段代碼是做什麼的,以及在Java中看起來像什麼?將C代碼轉換爲Java
double* ptr;
ptr = (double*)malloc(10*_R_CONST*sizeof(double)+2048);
我從我有限的ç,它的聲明指針PTR的知識推測,設置指針的大小?
這是電話的樣子後在同一個文件
ptr[10*n+2]=-RadtoMOA(atan(y/x));
ptr[10*n+0]=x/3;
ptr[10*n+1]=y*12;
ptr[10*n+2]=-RadtoMOA(atan(y/x));
ptr[10*n+3]=t+dt;
還有另外一個類似的功能,再次我不熟悉C.這兩條線有星號是我行特別想知道。
double GetRange(double* sln, int yardage){
**double size=sln[_R_CONST*10+1];**
if (yardage<size){
**return sln[10*yardage];**
}
else return 0;
}
對於這個問題的第一部分,下面是完整的代碼,含。上面的摘錄。
double* ptr;
ptr = (double*)malloc(10*_R_CONST*sizeof(double)+2048);
double t=0;
double dt=0.5/Vi;
double v=0;
double vx=0, vx1=0, vy=0, vy1=0;
double dv=0, dvx=0, dvy=0;
double x=0, y=0;
double headwind=HeadWind(WindSpeed, WindAngle);
double crosswind=CrossWind(WindSpeed, WindAngle);
double Gy=GRAVITY*cos(DegtoRad((Angle + ZAngle)));
double Gx=GRAVITY*sin(DegtoRad((Angle + ZAngle)));
vx=Vi*cos(DegtoRad(ZAngle));
vy=Vi*sin(DegtoRad(ZAngle));
y=-SightHeight/12;
int n=0;
for (t=0;;t=t+dt){
vx1=vx, vy1=vy;
v=pow(pow(vx,2)+pow(vy,2),0.5);
dt=0.5/v;
// Compute acceleration using the drag function retardation
dv = retard(DragFunction,DragCoefficient,v+headwind);
dvx = -(vx/v)*dv;
dvy = -(vy/v)*dv;
// Compute velocity, including the resolved gravity vectors.
vx=vx + dt*dvx + dt*Gx;
vy=vy + dt*dvy + dt*Gy;
if (x/3>=n){
ptr[10*n+0]=x/3; // Range in yds
ptr[10*n+1]=y*12; // Path in inches
ptr[10*n+2]=-RadtoMOA(atan(y/x)); // Correction in MOA
ptr[10*n+3]=t+dt; // Time in s
ptr[10*n+4]=Windage(crosswind,Vi,x,t+dt); // Windage in inches
ptr[10*n+5]=RadtoMOA(atan(ptr[10*n+4])); // Windage in MOA
ptr[10*n+6]=v; // Velocity (combined)
ptr[10*n+7]=vx; // Velocity (x)
ptr[10*n+8]=vy; // Velocity (y)
ptr[10*n+9]=0; // Reserved
n++;
}
// Compute position based on average velocity.
x=x+dt*(vx+vx1)/2;
y=y+dt*(vy+vy1)/2;
if (fabs(vy)>fabs(3*vx)) break;
if (n>=R_CONST+1) break;
}
ptr[10*_R_CONST+1]=(double)n;
*Solution = ptr;
return n;
}
請勿使用'**'突出顯示代碼行。 – EOF
由於堆棧溢出不是翻譯或「解釋我的代碼」服務,因此我正在投票結束此問題。 – Olaf
您並未翻譯算法或類似的代碼,您可以合理地嘗試逐行分析。它是一個完整的代碼體系 - 你應該嘗試弄清楚代碼應該做什麼,在高層次上,並從頭開始在Java中實現它。因爲沒有這樣的事情,所以你不會試圖獲得Java中的'malloc'。 – PaulMcKenzie