2017-01-28 6 views
-3

です:期待「フロート*」が、引数は型である「int型*」 私のプログラムは注:「フロート*」が、引数期待のタイプが「int型*」私は警告 ノートを持って

#include <stdio.h> //header file 

void foo(float *); 

int main() 
{ 
    int i = 10, *p = &i; 
    foo(&i); 
} 

void foo(float *p) 
{ 
    printf("%f\n", *p); 
} 
です

出力は0.000 000 なぜですか?

+4

は、何が間違っているかについて既に明らかな警告テキストではありませんか? – artm

+2

あなたが理解していないという警告はどうなっていますか? –

答えて

0

foo関数は、タイプint *ではなく、float *の戻り値が必要です。 floatintに変更し、"%f"の代わりに"%d"を使用して、警告を取り除いてください。

1

警告が言うように、あなたはintfoo()へのポインタを渡しているが、foo()floatへのポインタを期待しています。したがって、ifloatと宣言するか、foo()というパラメータをint*と変更してください。

関連する問題