首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中Linux下段异常

2012-05-20 
C语言中Linux下段错误#include stdio.h#include netdb.h/*包含相关的头文件。*/#include string.hint

C语言中Linux下段错误
#include <stdio.h> 
#include <netdb.h> /*包含相关的头文件。*/ 
#include <string.h>
 
int main() 

  struct protoent *pro; /*定义一个表示协议的结构体指针。*/ 
  int i; 
 
  for(i=0;i<5;i++) /*循环。*/ 
  { 
  pro=getprotobynumber(i); /*取得协议信息。*/ 
  printf("protocol name : %s\n",pro->p_name); /*协议名。*/ 
  printf("protocol number : %d\n",pro->p_proto); /*协议号。*/ 
  printf("protocol alias: %s\n",pro->p_aliases[0]); /*别名。*/ 
  } 


运行环境为ubuntu11.04 .运行没问题出现。
把 for(i=0;i<n;i++) 如果n>8的数就出显示0到6的数据接着显示段错误。
出现这个问题的原因是什么。
UDP number 17 


[解决办法]
编译的时候加-g,然后gdb调试一下吧。
[解决办法]

#include <stdio.h>
#include <netdb.h> /*包含相关的头文件。*/
#include <string.h>
 
int main()
{
struct protoent *pro; /*定义一个表示协议的结构体指针。*/
int i;
 
for(i=0;i<5;i++) /*循环。*/
{
pro=getprotobynumber(i); /*取得协议信息。*/
if(pro == 0)
{
printf("protocol name : fail\n");
continue;

printf("protocol name : %s\n",pro->p_name); /*协议名。*/
printf("protocol number : %d\n",pro->p_proto); /*协议号。*/
printf("protocol alias: %s\n",pro->p_aliases[0]); /*别名。*/
}
}

热点排行