a) I suspect you are attempting to use 16-bit borland graphics functions with a 32-bit compiler? If not then I have no idea what you mean. You will have to post actual error message(s)
b) a pointer is just the address to the beginning of an array. Of course there is a practical limit on the array's size -- nothing is infinite. But I think what they were saying is that just having the pointer along one cannot determine the array's length. If it is a pointer to a string then you can call strlen() function to get its length, but the array size can larger.
int foo( char * pointer)
char name = "Jones";
int len = foo(name);
In the above code function foo() returns the length of the string but has no clude about how big the array of characters.