Fixed an issue when size = 0.
Forgot to leave space for \0.
Added an option to use the struct with the struct keyword too.
Removed annother duplicate line.
Improved readability of functions.