Aber solch einen Viewer für möglichst viele Spiele zu schreiben ist nicht die optimale Lösung

Mit diesem angesprochenen Videoserver würde mich interessieren.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.