複数の値を返さないといけない場合は、
値を返す用の引数を別個に用意するのが普通かな。

今の add_line の仕様だと、
struct lines * 型の戻り値を current に渡す、とかできないっしょ。

まあとりあえず、
>>21 のポインタへのポインタの使い方自体は間違ってないので、
変なのだとしたら他の所がおかしいんだと思うよ。