>>137
int a=0;
hoge(a);

void hoge(int a){
 a=1;
}
ってやっても呼び出し元のaは変化しないのはわかるよな。

で、137のソースを↓を使って書き換えてみて。多分これでわかると思う。
typedef LIST* PLIST;