gcc调试strset函数出错

#include <stdio.h>
#include <stdlib.h>

#include <sys/epoll.h>

int main(int argc, char **argv)
{
int fd=4;
int* px=&fd;
struct epoll_event ev;

ev.data.fd = fd; //标记1
ev.data.ptr=px; //标记2
ev.events = EPOLLIN | EPOLLOUT;

return 0;
}


这个简单的几行代码,竟然出莫名其妙的问题;

单步调试:
执行完标记1,ev.data.fd的值为4;
执行完标记2,ev.data.fd的值就被修改了。。。这是怎么回事?

我的系统是Ubuntu10.10-AMD64(2.6.35-28-generic)
开发环境都是直接apt-get安装的

作者: darkavenger   发布时间: 2011-03-18