So size of Memory :- 2^18 * 4 Byte (Because every word is of 4B)
This is not correct. Why you are multiplying by 4 when you have already converted 4 bytes to 32 bits above. Memory size will be $2^{18} = 256 KB$
No No..
The remaining bits represent the memory word i.e. 18 bits, so total $2^{18}$ words are there,
Where is it written that memory is word addressable so you are giving these addresses to words? Always consider byte addressability unless otherwise specified. So each byte will take a different address. A memory address is of 18 bits. So with these 18 bits $2^{18}$ different addresses are possible and each of which is given to a different Byte of memory so memory size is $256 KB $
@Na462(I don't know your real name) :)
when I say memory is of k bits it means that total 2^k words are present and by default every word is of 1 bytes so total 2^k bytes are there,with address given to every byte.
There is nothing like that. By default, we consider memory is Byte Addressable. So when you say memory address is of k bits, it means $2^k$ bytes are there. And if say word size is 4 byte then $\frac{2^k}{4}=2^{k-2} \ words$ are there.
But if it is given in the question that memory is word addressable then only you can say that memory address is of k bits, it means $2^k$ words are there. And if say word size is 4 byte then $2^k*4=2^{k+2} \ bytes$ are there.
Given answer is right.