gcc warnings: implicit declaration of function...

I am having strange warnings from gcc compiler, which I don't think should come while cmpiling.
Can anyone help? The warnings are:

  • warning: implicit declaration of function 'bzero'
  • warning: implicit declaration of function 'inet_addr'

The code is as below:

int main(int argc, char **argv)
{
struct sockaddr_in servaddr;
char buffer[BUFLEN];
int n;

argv0 = argv[0];

if ( (sockfd=Socket(AF_INET,SOCK_STREAM,0)) < 0 )
exit(1);

bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family = AF_INET;

if ( (servaddr.sin_addr.s_addr = inet_addr("131.170.24.42"))
== -1 ) {
fprintf(stderr,"%s : inet_addr failed, errno=%d\n",argv0,errno);
exit(1);
}

.......
.......
}

This I have figured out. I didn't include the header files for bzero(), inet_addr().

Can anyone guide about the other warning?

"void format, different type arg (arg 1)"

The function's on which warning is given, looks like this:
void fprint_stderr_sockarray(int* sockets)
{
..........
..........
}

Sorry All,
The warning comes on the inner line of this function. The line is:

fprintf(stderr,
" } at %p size %d\n",sockets,((MAX_TCPCLIENTS)*(sizeof(int))));

The warning talks about argument 1, so there must be a problem with "sockets parameter", to let you people know sockets is an integer pointer: int* sockets this was sent to function as parameter.

Now whats the problem, can someone tell me? Is this sockets some differetn type from "%p" or what? Btw, what does %p means in fprintf()?

Waiting for response.