Вы возвращаете только что выделенный double
. Вы удаляете это где-нибудь?
Почему вы возвращаете указатель на недавно выделенный double
? Почему бы просто не вернуть double
? Возвращать восьмибайтовое временное значение не составляет особого труда, и вызывающий объект может решить, что он хочет с ним делать (включая выделение нового double
в куче, если ему это нравится). Предполагая, что значения не велики, я бы предпочел вернуть временный. Концептуальное приближение new
к реальному использованию облегчает управление памятью.
Кроме того, выделение большого количества очень маленьких блоков может привести к неэффективному использованию кучи и фрагментации кучи, так что программе может не хватить памяти, когда это не так, и она не сможет выделить большой кусок, даже если похоже, там еще много осталось. Это может иметь или не иметь значения (а дополнительное время, необходимое для выделения памяти, может иметь или не иметь значения, особенно в функции, время выполнения которой, вероятно, преобладает при вводе / выводе). Вероятно, это микрооптимизация, но если нет достаточных причин для таких небольших выделений, вы можете также привыкнуть не использовать их.