Each time the function is called you need to print just one line of asterisks, and then recursively call the function to print the next line of asterisks. Obviously, with each call the line of sterisks will get longer, until the largest row is reached, and then you will need to set a flag (declared as a static variable) so that on subsequent calls the line starts getting shorter again. When, finally, the function is called to print a row 0 characters long, the function will do nothing except return, and all of the other recursive calls will then return.
Possibly, you will want to write a driver function to make the initial call to the recursive function.
Also, when testing a program containg a recursive function, bear in mind that you might overflow the stack if you make the maximum length of a row too large.