Преимущество состоит в том, что вам не нужно копировать данные в другую структуру после вызова 'time'.
Если вы, например, подготавливая буфер данных для отправки другому приложению / серверу, вам придется скопировать данные, что является дополнительными затратами. Передав указатель в вашу структуру данных, вы можете поместить его в правильное место за один раз.
Конечно, если вы используете данные только для преобразования их в другой формат, такой как текстовый printf, тогда более эффективно вызывать их с помощью NULL и сохранять дополнительное хранилище, необходимое для первого примера.
Наконец, поскольку функция времени использует одно место для хранения своей внутренней структуры времени, первый метод будет более поточно-ориентированным, хотя я не могу вспомнить верхнюю часть моей головы, если бы «время» на самом деле было поточно-ориентированным.