我有一个 C++ 程序,主要执行矩阵乘法、加法等。
问题是,当计算执行大约 300 万次时会发生 EXC_BAD_ACCESS。
当一个问题被执行数百万次和几个小时时,是否会出现任何可能的问题?
节目详情:
该程序只是对不同范围的值进行计算,因此它同时在 6 个线程上执行。线程之间没有资源共享。
该程序似乎没有明显的问题,因为:
- 没有内存泄漏,我用 Instruments 确认过,程序的内存大小是稳定的。
- 该程序可以在每个线程上执行至少 200 万次而没有任何问题,但几乎可以保证 EXC_BAD_ACCESS 异常在某个时间出现在某个线程上。(异常发生在我的 2 次程序尝试 (2/2) 中)
关于矩阵乘法:
有时矩阵的大小约为 2*2 乘以 2*1000。
矩阵的元素是一个自定义的复数类。
元素的值由 rand() 随机生成并转换为浮点数。
结构是这样的:
class Complex
{
private:
float _real, _imag;
public:
// getters, setters and overloaded operators
};
class Matrix
{
private:
Complex **_values;
int _row,_col;
public:
getters, setters and overloaded operators
};
非常感谢!
非常欢迎任何可能的崩溃原因!