c++cprintfsize-t

What's the correct way to use printf to print a size_t?


size_t is defined as an unsigned integer, but the size of it depends on whether you're on a 32- or 64-bit machine. What's a correct and portable way to print out a size_t?


Solution

  • Try using the %zu format string

    size_t val = get_the_value();
    printf("%zu",val);
    

    The z portion is a length specifier which says the argument will be size_t in length.

    Source - http://en.wikipedia.org/wiki/Printf#printf_format_placeholders