Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
指针的内容在传递给函数时发生了更改 我用C++做我的工作。以下是我困惑的问题 typedef struct netHandler { int m_iFd; poll_event_t* m_pPollEvent; epoll_event m_Event; void* m_pConn; } netHandler_t;_C++_Data Structures - Fatal编程技术网

指针的内容在传递给函数时发生了更改 我用C++做我的工作。以下是我困惑的问题 typedef struct netHandler { int m_iFd; poll_event_t* m_pPollEvent; epoll_event m_Event; void* m_pConn; } netHandler_t;

指针的内容在传递给函数时发生了更改 我用C++做我的工作。以下是我困惑的问题 typedef struct netHandler { int m_iFd; poll_event_t* m_pPollEvent; epoll_event m_Event; void* m_pConn; } netHandler_t;,c++,data-structures,C++,Data Structures,这是我的结构。当程序运行时。我在以下位置设置了断点: connection_t* conn = geneConnection(idenfication, fd, handler); 在执行此函数之前,我记录处理程序的内容 p *(netHandler_t *) 0x2aaaac000960 $2 = {m_iFd = 9, m_pPollEvent = 0x2aaaac000930, m_Event = {events = 1, data = {ptr = 0x2aaaac00

这是我的结构。当程序运行时。我在以下位置设置了断点:

connection_t* conn = geneConnection(idenfication, fd, handler);
在执行此函数之前,我记录处理程序的内容

p *(netHandler_t *) 0x2aaaac000960
$2 = {m_iFd = 9, m_pPollEvent = 0x2aaaac000930, m_Event = 
    {events = 1, data = {ptr =    0x2aaaac000960, fd = -1409283744, u32 = 2885683552, u64 = 46912518490464}}, 
    m_pConn = 0x60d010}
然后我进入geneConnection函数。内容改变了

p *(netHandler_t *) 0x2aaaac000960
$3 = {m_iFd = 9, m_pPollEvent = 0xac00093000000000, m_Event = 
    {events = 10922, data = {ptr = 0xac00096000000001, fd = 1, u32 = 1, u64 = 12393916482445115393}}, 
    m_pConn = 0x2aaa}
这就像是结构被收缩了一样

connection_t* geneConnection(long iden, int sendfd, netHandler_t* handler);

这是geneConnection的声明。我不明白为什么会这样。当我将此函数更改为内联类型时。处理程序的内容不会更改。

epoll\u event.data看起来像是一个工会在对整个项目进行清理和重建,请确保每个单元都使用相同的编译器选项。所有的东西都在同一个项目中吗?或者您正在进入一个dll或静态库吗?a将非常有用。处理程序来自哪里?它是已经返回的函数的局部变量吗?看起来编译调用方时的结构打包设置与编译geneConnection函数时不同。就像其中一个头文件执行pragma包,然后不重置它一样。
p *(netHandler_t *) 0x2aaaac000960
$3 = {m_iFd = 9, m_pPollEvent = 0xac00093000000000, m_Event = 
    {events = 10922, data = {ptr = 0xac00096000000001, fd = 1, u32 = 1, u64 = 12393916482445115393}}, 
    m_pConn = 0x2aaa}