[解決済み] 警告: 引数 'from 非互換のポインタ型 [デフォルトで有効]' を渡す
2022-01-31 09:26:29
質問
なんとなく他のスレッドを見て回ったのですが、なんとなくピンとこない...。
評価した値のセットに対して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 .
関連
-
[解決済み】Cコンパイルエラー。"変数サイズのオブジェクトが初期化されていない可能性がある"
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み] テスト
-
[解決済み】C言語のフォーマット文字列でデータ引数が使用されない [重複]。
-
[解決済み】シンプルなC言語のscanfが機能しない?重複
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み] strtokのセグメンテーションフォールト
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】 strcpyとstrdupの比較
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み] struct has no member named
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み】インクリメントオペランドとして lvalue が必要です。
-
[解決済み】未定義参照 makefile が間違っているのかも?
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。