私はプロトタイプがint foo(int device, double *x, double *y)
だった関数を呼び出していました。そして、私はこれをfoo(dev, (double*)x, (double*)y);
のように呼びました。ここでxとyは両方とも浮動小数点へのポインタです。値渡しの変数の値を変更できますか? (In C)
何らかの理由で、デバイスが関数1に入っていて、ランダムな巨大値として出ていました。
fooはダブルスを扱っていて、私は浮動小数点数を渡したので、それは彼らの記憶を乱しましたか?
あなたは 'x'と' y'のポインタを取得していません。それらをポインタにキャストしています。 –
あなたがしたことは、xとyが浮動小数点を指していることをコンパイラに伝えていました。これは事実上嘘でした。したがって、C言語標準では、プログラムに「未定義の動作」があると言われます。それは何かをする責任があります。 – Gene
コンパイラの警告を無音にすると、... –