Virtual adress of 'a' will be same for child unless execv() is called immediately after fork for child. When a parent forks, the child will get the same VA space as the parent, but all the page table entries are marked read-only. When either child/parent tries modifying the page, a page fault will ensue (copy-on-write) and the OS pages in a new page, copy the old contents and mark the the page as RW for both parent and child. Now, the PTE will be different for both parent and child. (But virtual address is still the same)
Please correct me if I am wrong.