38.1 针对问题,解决问题
内存泄漏问题在小程序中很难被发现,只有在内存用完后,导致分配内存出现“bad alloc”时才能被发现。
如下是在“画六个圆环”时出现的“bad alloc”问题。(圆环的每个像素点都需要解一个一元四次方程,可能是在调用解方程函数时动态分配了太多的内存,然后忘了释放,然后内存全被用完了)
原因肯定是:动态分配的内存没有释放,导致内存泄漏。(new 和delete没有配合好。)
我们以调用“一元二次方程”函数为例,进行说明。
float* roots_quadratic_equation(float a, float b, float c) {
//the first element is thenumber of the real roots, and other elements are the real roots.
float *roots = new float[3];
/*为了使函数返回一个数组,将roots