PIC32をベンチマークするためにDhrystoneを実行しようとしています。CでのDhrystoneの実行、malloc()の競合するタイプ
私はそれが古い使用していますが、特に建物からそれを阻止される問題の1つであり、ソースコード:エラー:矛盾するタイプ)* malloc関数のための
extern char *malloc();
....
....
Next_Ptr_Glob = (Rec_Pointer)
malloc (sizeof (Rec_Type));
Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
Ptr_Glob->Ptr_Comp = Next_Ptr_Glob;
Ptr_Glob->Discr = Ident_1;
Ptr_Glob->variant.var_1.Enum_Comp = Ident_3;
Ptr_Glob->variant.var_1.Int_Comp = 40;
strcpy (Ptr_Glob->variant.var_1.Str_Comp,
"DHRYSTONE PROGRAM, SOME STRING");
strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
//rest of program
宣言は(コンパイラのメッセージを生成し、 'malloc'のために。私がその行をコメントアウトすると、プログラムを実行できますが、Ptr_Glob-> Ptr_Comp = Next_Ptr_Globにランタイムエラーがあると思います。 ...私はランタイムエラーをデバッグするためにLEDを使用しています、そして、彼らはその時点まで動作します。なぜ私がこれらの問題を抱えているのか、どんな考えですか?どうすればmalloc()で問題を解決できますか?
再malloc関数を追加することですです。しかし、コード(http://homepages.cwi.nl/~steven/dry.c?)は古く、あらゆる種類の愚かなトリックをプレイしているので、2つの質問があります。 (それはすべきです)、そして、第二に、あなたは "sh dry.c"を介してそれを実行しています、あなたはarentですか? – loreb
PIC32はそのようなコードを正当化するほど古くはありません!このようなMCUで 'malloc 'を使用することは、PIC32が起動したときに既に適切なプロトタイプを必要とする、何年か前に欠陥のあるデザイン、C99の方法の信号であることは言うまでもない。プログラマーが悪い仕事をしたように見えます。 – Olaf