A "RowArray" here is an array of five ints. By mallocating enough space to *ptr, you can implicitly make it an array of whatever it points to -- eg, with a normal int:
Code:
#include <stdio.h>
#include <stdlib.h>
int main() {
int x, *ptr=&x, i;
ptr=malloc(12);
ptr[1]=7;
for (i=0;i<3;i++) printf("%d\n", ptr[i]);
}
So in your example, *rptr ends up as a 2 dimensional int array -- the first number is the element of the pointer array, the second the element of the array pointed to by the element of the pointer array.