void foo(struct LIST **ptr) {
struct LIST **a = ptr; // struct LIST **型の変数aを宣言して、struct LIST **型の値を代入
struct LIST *b = *ptr; // struct LIST *型の変数bを宣言して、struct LIST *型の値を代入
struct LIST c = **ptr; // struct LIST 型の変数cを宣言して、struct LIST 型の値を代入
}
へんすーの宣言時にくっついてる*と、
へんすーが式の中にでてきてるときにくっついてる*は役割がべつだよ!
分けて考えたほうが多分理解しやすいよ!