I’m confused of the code “backup=copy=…” , since both backup and copy are both address, doesn’t this mean backup would always be the same as the copy? How came that copy changed by copyH* while backup not changed? And which pointer points to the space created by this code, the backup? Is it because copy is a pointer, not a pointer which points to array, so after it moved forward, the array would start from its current position? Could you plz make memory and pointer clear to me? I’m not good at those.