代码: 全选
这是一个简单nslookup程序,如下。
运行结果是: ./nslookup www.google.com
: length:4
: i=0
: i=1757276480
: 64.233.189.104
: i=1757276480
#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
int i;
struct in_addr h_addr;
struct hostent *host;
if(argc != 2) {
fprintf(stderr, "USAGE: %s <inet_address>\n", argv[0]);
exit(1);
}
if((host = gethostbyname(argv[1])) == NULL) {
fprintf(stderr, "(mini) nslookup failed on '%s'\n", argv[1]);
exit(1);
}
fprintf(stdout,"length:%d\n", host->h_length);
// int i;
// int length = host->h_length;
for(i = 0; i < host->h_length; ++i)
{
fprintf(stdout, "i=%d\n", i);
h_addr.s_addr = *(in_addr_t *)host->h_addr_list[i];
fprintf(stdout, "i=%d\n", i);
fprintf(stdout, "%s\n", inet_ntoa(h_addr));
fprintf(stdout, "i=%d\n", i);
}
exit(0);
}
那个i...囧~~怎么那么像内存泄漏的,看不出来。
谁能分析下怎么回事?