Du verstehst nicht den Punkt:
Man kann Varaiblen per * als Pointer übergeben, wie ich es getan habe, oder per & als Referenz (Adresse ), wie du es oben geschrieben hast.
Zu deinem Vorschlag fehlt aber noch der tatsächlich funktionierende Code zu dem beschriebenen 2-dim array Problem. Hier ist mir noch schleierhaft, wie du einen
char*mlist[n ] = {"a", "foo", "dfghj",.... }

referenziert per & an die Objektinstanz übergeben willst, so dass man dort darauf als array
char list [m ][n ]
Oder als
char** list
zugreifen kann.

Schreib doch mal bitte diesen genauen, getesteten Code hier rein, wie du das meinst.