私はここでは何かが分からないと確信していますが、それが何であるか把握できません。 my repositoryには、 "ddpoly2"という関数を含むddpoly_2.cというファイルがあります。私はtst5.cのmain関数からこの関数を呼び出します。 tst5_2.cのコードを見ると、私はxaの値を2に割り当ててすぐにそれを印刷し、それを第3の引数として "ddpoly2"に渡します。私が言うことができる)。私はすぐに関数 "ddpoly2"からxを出力します。私が見るものは以下の通りです:C関数のfloat引数が関数内で異なる値をとる
x outside: 2.000000
x inside : 0.000000
nc: 2
nd: 3
あなたはそのXを見ることができる関数が呼び出された直前2.000000だったが、それは関数内で一度0.0000000となりました。私は明白にここに明白な何かを欠いているに違いないが、それが何であるか把握することはできない。
P.S.同じディレクトリにあるmakefileを使ってコードをコンパイルします。
編集:コードの関連部分をここに含めます。関数ddpoly2内部
int main(int argc, char *argv[])
{
//Used to determine which section gets its results printed.
float c[] = {1,1,1,0,0};
int nc = 2;
float x = 2.0;
float pd[] = {0,0,0,0,0};
int nd = 3;
printf("x outside: %f\n",x);
ddpoly2(c,nc,x,pd,nd);
}
印刷、それを::
#include <stdio.h>
void ddpoly2(float c[], int nc, float x, float pd[], int nd)
{
int nnd, j, i;
float cnst = 1.0;
printf("x inside : %f\n",x);
printf("nc: %d\n",nc);
printf("nd: %d\n",nd);
}
質問自体に参照している実際のコードを含めてください。 – Codor
[mcve] –
を提供してください。実際の*コール*をその関数にも表示できますか? –