2011-10-23 113 views
-1

給定的代碼產生浮點異常,誰能告訴我這是由什麼引起的?浮點異常C代碼

int play(t_env* env, t_pos* pos) 
{ 
    pid_t pid; 
    int  ret; 
    t_data data; 
    int  status; 

    pos->addx = 1; 
    pos->addy = 0; 
    pos->x = 2 + rand() % data.row; 
    pos->y = 2 + rand() % data.col; 
    pid = getpid(); 
    ret = waitpid(WAIT_ANY, &status, WNOHANG); 

    if (ret == -1) 
    { 
      id_print_str("Error during waiting stat"); 
      exit(1); 
    } 
    while (pos->x != data.row) 
    { 
      tputs(tgoto(env->cm, pos->x, pos->y), 1, id_put); 
      id_print_char('1'); 
      sleep(1); 
      pos->x = pos->x + pos->addx; 
      pos->y = pos->y + pos->addy; 

    return (0); 
} 
+3

你指的是什麼問題,我只看到一些代碼。 ? – rerun

+0

好吧,當我編譯時,我得到一個浮點異常,一旦我運行編譯的程序 – Slrs

+1

然後在調試器下運行它,並找出什麼行拋出異常。你如何知道你發佈的功能是什麼原因? – Praetorian

回答

1

按給定的代碼,我想,它可能只是在這裏,

pos->x = 2 + rand() % data.row; 
pos->y = 2 + rand() % data.col; 

確保data.rowdata.col是非零。否則,問題可能在其他地方。

+0

噢,非常感謝 – Slrs