如何解决如何释放内存
我有一个 void 函数,我在 main 中调用它,我希望它每次调用时都为 pi 使用一个新值,而不是添加它们。我想我应该为 Dir 类型的数组释放内存,但我无法弄清楚。实现如下:
void throwSeries(int n)
{
double pi;
double faults;
double numCicle;
Dir c[n];
int count = 0;
for (int i = 0; i < n; i++)
{
c[i] = someFun(); // Returns type Dir
if (below(c[i]))
{
numCicle++;
}
}
pi = 4 * (numCicle / (double) n);
faults = ((pi - M_PI) / M_PI) * 100;
cout << setw(15) << setfill(' ') << n;
cout << fixed << setprecision(5);
cout<< setw(15)<< setfill(' ') << pi << setw(15)<< setfill(' ') ;
cout << fixed << setprecision(1);
cout << faults << endl;
}
int main()
{
system("CLS");
srand(time(0));
cout << setw(15) << "n" << setw(15) << "pi" << setw(15) << "faults" << endl;
cout << setw(15) << setfill('-') << "|"<< setw(15) << setfill('-') << "|";
cout << "--------------" << endl;
int n = 0;
for (int i = 0; i < 100; i++)
{
n += 100;
throwSeries(n);
}
return 0;
}
打印示例如下:
n pi Rel. fault
--------------|--------------|--------------
100 3.12000 -0.7
200 4.66000 48.3
300 6.28000 99.9
400 7.80000 148.3
500 9.40000 199.2
600 10.76000 242.5
并且不应在每次迭代中添加 pi 的值。
解决方法
您必须先初始化 numCicle
,然后再向其添加内容。
换句话说,
double numCicle;
应该
double numCicle = 0;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。