Der Vorteil wäre, dass Sie die Daten nach dem Aufruf von 'time' nicht in eine andere Struktur kopieren müssen.
Wenn Sie z.B. Wenn Sie einen Datenpuffer erstellen, der an eine andere Anwendung/einen anderen Server gesendet werden soll, müssen Sie die Daten kopieren, was zusätzlichen Overhead bedeutet. Wenn Sie einen Zeiger in Ihre Datenstruktur einfügen, können Sie ihn in einer Aufnahme an die richtige Stelle setzen.
Natürlich, wenn Sie nur für die Daten verwenden, um es in ein anderes Format wie ein Text printf zu konvertieren, dann ist es effizienter, es mit NULL aufzurufen und den zusätzlichen Speicher für Ihr erstes Beispiel speichern.
Schließlich, da die Zeitfunktion einen einzigen Ort für die Speicherung ihrer internen Zeitstruktur verwendet, wäre die erste Methode threadsicherer, obwohl ich mich nicht mehr an den Kopf erinnern kann, wenn 'Zeit' threadsicher ist.
Das OP bekommt das. Er fragt _why_ Sie würden einen Nicht-NULL-Zeiger übergeben. –