The child gets a copy of the parent's vars but can never change the parent's copy. That's fundamental unix.
The parent can read data from a child through some IPC mechanism and make the change itself, but that won't change the copies already-launched children have. Yes, you need IPC.
Sysv IPC has a shared-memory facility which would seem to be just what you want, but sysv IPC is buggy with races and is rarely used.