+ 1
each memory cell is one byte and each cell contains capacitors or flip-flops that store either 0 or 1...you can say that the cell is the most basic unit for allocation of objects...now that's the basic
each char is one byte and I think you are talking about array of two chars, in that case you should know that an array is reference type which stores the reference to the memory block, basically each variable name is reference to memory block but in case of arrays it is the reference to the indexes
hence
index 0- one byte
index 1- one byte
it's not splitting it's just allocation of 1 byte to an index
+ 1
if you consider the storing of info
when you assign some value it overwrites the whole block(the size of data type)
like when I assign the integer 2 to a char it will assign
00000010 to the memory block instead of 10
the same is the case of integers
but as you see the integer is combination of two cells or bytes
hence when I assign a character to it I.e., assigning 1 byte store to 2 byte memory block
then only one byte will be overwritten
that generates the so called garbage values or half written ambiguity
0
let me know if I answered you