2010-03-24 63 views
1

一个循环,当我得到这个错误“未处理的异常”错误使用内螺纹

Unhandled exception at 0x0049b946 in Program.exe: 0xC0000005: Access violation reading location 0x00000090.

和错误指向该行:

 // thread.hpp ln 56 
     void run() 
     { 
      f(); // here << 
     } 

当试图运行此代码:

void frameFunc() 
{ 
    for(;;) 
    { 
     //..........do something. it is too long to paste. (calculations) 
    } 
} 

int main() 
{ 
    boost::thread framethread(frameFunc); 
    framethread.join(); 
    //........ 
} 

当我删除frameFunc中的循环时,错误将会消失。

任何形式的帮助,将不胜感激:)

+2

“做什么”做什么? – kennytm 2010-03-24 15:54:54

+0

粘贴时间太长。他们都是游戏计算(更多for循环,更改变量,更新对象:FMOD Ex更新,精灵位置等)。没有其他的。 – 2010-03-24 16:00:33

回答

2

,你表现出的代码看起来有效。我认为问题出现在未显示的代码中。

+0

以及为什么程序工作正常,如果我删除循环.. – 2010-03-24 16:04:10

+2

你可能会发现,代码仍然会运行正常,如果你只删除循环的内容... – 2010-03-24 16:07:27

+0

这是一个例子,为什么要做很多次可能段错误:1)int x [2]; int * p = x; * P = 3; 2)p ++; * P = 4; 3)p ++; * p = 7; < - 崩溃。 – 2010-03-24 16:10:35