良くみると、qを動的に確保する意味もわからんな…
普通に考えれば、構造体を宣言して、p[5]とq[5]を用意すれば良いだけ…
もともと、qはループの中で作って開放してたのか?