I didn't look at the whole thing, but these lines caught my attention
First the line you should be able to do the line you commented out, but it isn't necessary. The next line shouldn't compile.
holdPrt is data type Holding**
holdPrt[i] is data type Holding* (or *& I guess)
*holdPrt[i] is data type Holding
getInfo(); returns type Holding*
So that line should look like
holdPrt[i] = getInfo();
Time for nit picky stuff
in getInfo()
return 0;
Would be better as.
return NULL;
That makes it more obvious you are giving back a NULL pointer.
I guess this is a matter of taste, but you could write the other return much more succinctly as.
return new Book(titleTemp,authorTemp,callNumTemp);
One more thing you wouldn't happen to be using Dev-C++ would you?

