Large Stack Buffer: Zero-Initialized vs Uninitialized

Question 51 / 51 Correct so far: 0 (0 answered)

Snippet A

Zero Init Buf

NOINLINE std::size_t buildMessage(int value) {
    char buf[kBufSize]{};
    std::snprintf(buf, kBufSize, "result=%d status=ok timestamp=12345", value);
    return std::strlen(buf);
}

std::size_t len = buildMessage(kValue);
Snippet B

No Init Buf

NOINLINE std::size_t buildMessage(int value) {
    char buf[kBufSize];
    std::snprintf(buf, kBufSize, "result=%d status=ok timestamp=12345", value);
    return std::strlen(buf);
}

std::size_t len = buildMessage(kValue);
Shared test data (shared-setup)
constexpr std::size_t kBufSize = 16 * 1024;
constexpr int kValue = 42;

Which snippet is faster?

Select the correct answer(s)