The second initialization variable is an integer. Do you use memset or byte assignment? For example, after the assignment of memset(a, 1, sizeof(int)) is completed, the value of a is actually 0x00101,which is 65438 in decimal.
Secondly, 0 means that all bytes are 0, so you can also initialize int by byte.