[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
2022-02-09 15:06:32
質問
なんとなく他のスレッドを見て回ったのですが、なんとなくピンとこない...。
評価した値のセットに対してFFTを行いたいのですが、まず値を読み込んで、サイズの配列に保存するプログラムを書きました。
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 32bitを使っているのですが。
解決方法は?
<ブロッククオートl=FFT(logN,&werte,&nul);
^ ^
その行からアンパサンドを削除してください。
問題は
&
演算子が生成する式は、この文脈では
FFT
が期待されます。FFTはdoubleへのポインタを想定しており
&werte
はN個の要素を持つ配列へのポインタを生成します。そこで
FFT
を渡すだけで、幸せになれます。
werte
は静かに最初の要素へのポインタに減衰します。
配列へのポインタに関する詳しい情報は C FAQ .
関連
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み】C言語で浮動小数点例外(コアダンプ)発生
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】Makefile:1: ***セパレータがありません。停止します。
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み】Cコンパイルエラーです。Idは1終了ステータスを返した
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】cudamalloc()の使用。) なぜダブルポインタなのか?
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"