C++側からTcl実行する

AODV* aodvagent;

// set i to be the node id

char command[256];

sprintf(command, "foreach aodvagent [Agent/AODV info instances]\
{\nif { [$aodvagent id] == %d} {\nset i $aodvagent}}\nset t $i\n", i);   // <-- 真ん中に実行する文いれる

Tcl& tcl = Tcl::instance();
tcl.eval(command);		// <-- ここで実行
const char* ref = tcl.result();	// <-- result取るとどうして拾えるのかが未だに理解できなう

aodvagent = (AODV*)tcl.lookup(ref); // <-- refが見つけたAgent/AODVのインスタンス?

とってこれはしたけど、メンバ変数の中身が拾えない(´・ω・`)
Segmentation faultってなんだよなーもー