Часто это хорошая практика, но ваш пример - один из немногих случаев, когда это очень плохая практика.Вы никогда не должны использовать динамическое размещение и указатели для отдельных объектов, которые являются маленькими и не содержат (и никогда не должны будут содержать) сами указатели.Для получения 4-байтового int
с malloc
необходимо использовать не менее 16 байт, если учесть затраты на ведение бухгалтерского учета, но, возможно, гораздо важнее, это означает, что вам нужно беспокоиться о возможных сбоях выделения (и о том, как с ними обращаться)чтобы освободить объект.
Некоторые примеры объектов, которые вы не должны размещать следующим образом:
- любой базовый тип
- упорядоченные пары / координаты / векторы / матрицы/так далее.(при условии, что они имеют фиксированное измерение)
- IP-адреса
- значения цвета
Конечно, один раз может иметь смысл выделить и вернутьуказатель на такие объекты, когда вы выделяете массив из них.