Пожалуйста, проверьте
http://linux.die.net/man/1/gcc
для этого есть опция компилятора -mcheck-zero-Division.
В качестве альтернативы, установка обработчика SIGFPE может быть вариантом,
Затем деление с плавающей точкой на 0 сгенерирует «FPE_ZERODIVIDE»
signal(SIGFPE, (fptr) FPE_ExceptionHandler);
void FPE_ExceptionHandler(int nSig,int nErrType,int */*pnReglist*/)
{
switch(nErrType)
{
case FPE_ZERODIVIDE: /* ??? */ break;
}
}
с
Большинство систем с плавающей запятой основаны на стандарте IEEE, который допускает деление на 0. Это возвращает либо положительную бесконечность, либо отрицательную бесконечность, в зависимости от ситуации, на основе знаков чисел. (За исключением 0/0 возвращает неопределенный NAN - опять-таки не исключительный случай.) Это имеет тенденцию быть полезным для научных и математических приложений. NAN эффективно сигнализируют о случае, когда вычисления не были возможны, но позволяют вычислениям продолжаться. Продолжение расчетов не даст новых результатов, но будет продолжать возвращать NAN. Это позволяет выполнять длинные длинные цепочки вычислений без проверки ошибок в пределах вычислений. Проверки ошибок необходимо выполнять только в самом конце работы. Это делает код намного проще и быстрее. Иногда это может быть более полезным, так как для некоторых приложений инфинитизм является «полезным» результатом, а не признаком проблем.