ping的程序代码出错,主函数第一个参数小于2.

int main(int argc, char **argv)

if (argc <2 ) {
Usage(argv[0]);
}
运行时总是到这一步,失败。

不是应该这样?:
int main(int argc, char **argv){
if(argc <2){
Usage(argv[0]);
}
}
你报的错误贴出来啊

int main(int argc, char **argv){ 
 
     WSADATA wsaData; 
     SOCKET sockRaw; 
     struct sockaddr_in dest,from; 
     struct hostent * hp; 
     int bread,datasize,times; 
     int fromlen = sizeof(from); 
     int timeout = 1000; 
     int statistic = 0;  /* 用于统计结果 */  
     char *dest_ip; 
     char *icmp_data; 
     char *recvbuf; 
     unsigned int addr=0; 
     USHORT seq_no = 0; 
 
     if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0){ 
         fprintf(stderr,"WSAStartup failed: %d\n",GetLastError()); 
       ExitProcess(STATUS_FAILED); 
   } 

   if (argc <2 ) { 
       Usage(argv[0]); 
   } 
   sockRaw = WSASocket(AF_INET,SOCK_RAW,IPPROTO_ICMP,NULL, 0,WSA_FLAG_OVERLAPPED); 

if (argc <2 ) {
Usage(argv[0]);
}
当argc == 0时,argv[0]会报错的

因为你执行的时候没有传参数进去