区别于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;
{
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;
相关文章推荐
- 在使用windows调用Hadoop 错误 /bin/bash: line 0: fg: no job control一般解决方法[将windows中的任务提交到linux中出错]
- 在windows下使用Navicat for mysql 远程连接linux系统下的 mySql数据库会提示10061、1045错误
- snprintf函数的使用(Windows和Linux下的区别)
- 空指针操作在linux和windows下的区别
- windows下如何正确使用Jconsole远程连接linux主机上的JVM
- 在linux下向U盘复制文件时发生错误,显示目标是只读的,windows下能够正常使用,应该怎么解决?
- windows 2008初体验常见问题: 无线网络"没有正确配置为使用IP协议" 错误解决办法
- 【awk】诡异的错误,linux和windows换行的区别
- 正确使用指针(指针作为输出型参数)与结构体指针作为函数参数
- linux下使用mono运行vs程序和windows下的一些区别
- windows 2008无线网络“没有正确配置为使用IP协议” 错误解决办法
- windows 2008初体验常见问题: 无线网络"没有正确配置为使用IP协议" 错误解决办法
- 如何正确使用指针(指针作为输出型参数)与结构体指针作为函数参数
- list_del使用错误,如果摘链后还有挂链,请使用list_del_init。否则引发血案!!!
- Windows下正确使用adminconsole连接Linux的方法
- windows下如何正确使用Jconsole远程连接linux主机上的JVM
- windows 2008无线网络"没有正确配置为使用IP协议" 错误解决办法
- windows下如何正确使用Jconsole远程连接linux主机上的JVM
- 使用Handler对象引发空指针错误
- Windows下正确使用adminconsole连接Linux的方法