Вы абсолютно правы в этом отношении. В небольших тривиальных программах, где переменная должна существовать до самой смерти программы, нет реальной выгоды для освобождения памяти.
Фактически, я когда-то участвовал в проекте, где каждое выполнение программы было очень сложным, но относительно недолгим, и было принято решение просто выделять память и не дестабилизировать проект, совершая ошибки, освобождая его.
Тем не менее, в большинстве программ это на самом деле не вариант, или это может привести к нехватке памяти.
Операция запускает SIGFPE :
SIG - общий префикс для сигнала имена; FPE - это аббревиатура от исключение с плавающей запятой. Хотя SIGFPE не обязательно включает арифметика с плавающей запятой, нет способ изменить название без нарушение обратной совместимости.
GDB говорит об этом немного яснее и называет это «арифметическим исключением»:
(gdb) run
Starting program: /home/emil/float
Program received signal SIGFPE, Arithmetic exception.
0x0804837d in main () at float.c:4
4 int c=a%b;
Взгляните на эту страницу .
Часть, имеющая отношение к вашему вопросу:
SIG - это общий префикс для имен сигналов; FPE - это аббревиатура от исключения с плавающей запятой. Хотя SIGFPE не обязательно включает арифметику с плавающей запятой, нет способа изменить его имя без нарушения обратной совместимости.