您的位置:首页 > 运维架构 > Linux

区别于windows,Linux下 结构体指针应正确使用,否则易引发错误

2014-03-21 11:22 375 查看
struct FDPARAM

{
int fd0;
int fd1;

};

int main()

{

inf fd0,fd1;

FDPARAM *pFdParam;

pFdParam->fd0 = fd0;

pFdPara->fd1 = fd1;

return 0;

}

以上代码在windows下是没有问题的,但是在linux环境下会出现两个问题:

1.undeclared first use in this function(编译时)

pFdParam在声明时要加类型 struct FDPARAM *pFdParam;

2.段错误(运行时)

段错误的出现多半是因为指针试图引用或修改不存在的物理地址,在linux下,结构体指针实例化时一定要记得初始化

正确的使用方法是:

struct FDPARAM *pFdParam ; // NOTICE:  in linux need "struct"
pFdParam = (struct FDPARAM*)malloc(sizeof(struct FDPARAM));//NOTICE:in linux struct need initialization after instantiation 

pFdParam->fd0 = fd0;

pFdParam->fd1 = fd1;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 指针 struct
相关文章推荐