2

私のJavaの経験から、把握するのは難しくありませんでした。

非常に単純な関数:

void update(float * p,float value)
{
    *p = value;
}

コンパイラはそれを文句を言っていidentifier p is undefinedます。

*pポインタを逆参照して値を格納すると思いました。

4

1 に答える 1

4

OK、あなたのコードは正しいように見えますが、エラーメッセージは別の場所から来ていると想定する必要があります。この「完全な」バージョンのプログラムを試すことができます。

#include <stdio.h> 

void update(float *p, float value){
  *p = value;
}

int main(int argc, char *argv[]){  
  float p = 3.0;
  update(&p, 5.0);
  printf("%f\n", p);
}

それをコピーして貼り付け、エラーや警告があれば応答してください。正常に動作する場合は、コードに入力ミスがあります。それでも問題が発生する場合は、環境に問題があり、詳細が必要です。

于 2012-09-25T17:47:20.783 に答える