Здесь заголовок функции:C синтаксис понимания - передача параметров функционирования
int* matrixmult(const int*ap[], const int* bp[], int* cp[])
и рабочий вызов функции:
matrixmult(ap, bp, cp);
Почему работа не этот вызов ?:
matrixmult(ap[0], bp[0], cp[0]);
Поскольку функция требует передачи массива, а не элемента из этого массива. Возможно, снова прочитайте книгу. –