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

关于结构体引用的有关问题,请大侠帮忙

2013-10-29 
关于结构体引用的问题,请大侠帮忙。是这样子的。ptr[]表示每个数组存放一个ip地址;一个函数adcde_function(u

关于结构体引用的问题,请大侠帮忙。
是这样子的。
ptr[]表示每个数组存放一个ip地址;
一个函数  adcde_function(unsigned long *ptr[]);

我在用到这函数的时候:
定义结构体

typedef struct {    
   char ip[16];        
} CD_STRUCT;

typedef struct {
    int a;
    CD_STRUCT itme[16];  
} AB_STRUCT;

main()

  //定义一个结构体变量
  AB_STRUCT ptr_ip;
  //这个函数用到的是
  adcde_function(&ptr_ip.itme[16]); 
}

关于adcde_function()函数里面的参数 我这边怎么引用?如上表示,对不对?如果错了还请高手帮忙解答下,为什么会这样!
[解决办法]
刚刚试了下,adcde_function( (unsigned long )&ptr_ip.itme );  这样还是不行的。
改成这样应该可以adcde_function( (unsigned long** )ptr_ip.itme );  
[解决办法]
int adcde_function(unsigned long *ptr[]);
这个函数的参数其实是一个指针数组,而你的参数传递方式

 adcde_function(&ptr_ip.itme[16]); 

且不谈ptr_ip.itme[16]已经发生越界,即使传的是ptr_ip.itme[15]这样也是不对的

unsigned long *ptr[],其实也就是二级指针,可以写成unsigned long** ptr;
所以你传参时,可以按照下面的方式传递:
adcde_function((unsigned long **)ptr_ip.itme); 

热点排行
Bad Request.