Use actual variable types rather than hardcode uintN_t types
It's always better to use the variable size when allocating/copying data.
Also we can assume the sizeof(uintN_t) has a fixed value. Although it may be easier to read in some cases.
From C11 7.20.1.1:
The typedef name uintN_t designates an unsigned integer type with width N and no padding bits.