これに関連して他のスレッドを見回してきましたが、どういうわけかわかりません...
評価した一連の値に対して FFT を実行し、このプログラムを作成して、最初に値を読み取り、それらを size の配列に保存したいと考えていますn
。
int main () {
// some variables and also a bit of code to read the 'messwerte.txt'
printf("Geben sie an wieviele Messwerte ausgelesen werden sollen: ");
scanf("%d", &n);
double werte[n]; //Array der "fertigen" Messwerte
in = fopen ("messwerte.txt","r");
double nul[n]; //Array von nullen
int logN = 14;
l=FFT(logN,&werte,&nul);
}
同じファイルで、次のプログラムを使用して FFT も実行します。
double FFT (int logN, double *real, double *im) //logN is base 2 log(N) {
// blabla FFT calculation
}
ただし、コンパイルすると、常に次のエラーが発生します。
gcc FFT.c -lm
FFT.c: In function ‘main’:
FFT.c:94:2: warning: passing argument 2 of ‘FFT’ from incompatible pointer type [enabled by default]
FFT.c:4:8: note: expected ‘double *’ but argument is of type ‘double (*)[(unsigned int)(n)]’
FFT.c:94:2: warning: passing argument 3 of ‘FFT’ from incompatible pointer type [enabled by default]
FFT.c:4:8: note: expected ‘double *’ but argument is of type ‘double (*)[(unsigned int)(n)]’
初めてのプログラミングなので、自分のコードの何が問題なのか本当にわかりません。コンパイラやそのようなものにさらにフラグを設定する必要が-lm
ありますか(このようなことをしなければならなかったか、コンパイルされず、 pow not found などのようなことを言ったからです)?
また、Windows と Linux マシンで書くと違いがあるかもしれないことを認識し、OS の問題であれば Linux、Lubuntu 12.10 32-bit を使用しています。