すみません。皆さんのおっしゃる通り、
(((*r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
これは
*((*(r + i)) + j) += *((*(p + k)) + i) * *((*(q + j)) + k);
これの間違いでした。
配列名(ここでは配列の配列)に&をつけると、配列の配列を指すポインタを渡すことになり、それを受けるには、配列の配列へのポインタで受けるということがわかりました。
皆さんありがとうございました。