-1

処理する値を生成するリアルタイム アプリケーションを使用しています。私が使用している関数の 1 つで、グローバル関数としてではなく、毎回次のように宣言しています。

#define BUFFER 25
double A[BUFFER];
double B[BUFFER];
double C[BUFFER];
double TOTAL[BUFFER];
double ERRORS[BUFFER];

しかし、処理が完了するとすぐにそれらを取り除くことなく、すべての配列値にいくつかのポインター/アドレスを割り当てているようです。

プロジェクトが上記の宣言を含む関数を使用しており、私のプロジェクトが 30 分間、1 秒ごとに新しい値を更新していると考えると、 25*5*60*30=225K の無駄なメモリが使用されます。

毎回それらを取り除く方法は?メモリ使用量が不足していますが、使用されていないメモリが原因でプログラムがクラッシュするのは望ましくありません!

4

2 に答える 2

0

5 つの double の 5 つの配列が原因でメモリ不足になっている場合は、メモリの少ないマシンを使用していることをお勧めします。または、他の何かがすべてのメモリを使用しているため、限界を超えている可能性があります。それはあなたのプログラムですか?その場合は、プロファイルします。

于 2013-06-14T12:12:52.493 に答える