消息关闭
    暂无新消息!

一个诡异的问题请教大家

问题作者 : 钱盼2017-06-10发布
现象:
    指针push进vector之后,vector内的指针值改变了,但是先强制转换,再push,则值正常。

代码:
    函数入口形式:
bool Setter(const uint8_t index,const Data &data,std::vector<void*> &vptr, void* ptr) 

    出错的代码形式:

Data_S* data_s = (Data_S*)ptr;
data_s->structure = (void*)0x1234;
void*& pr = data_s->structure;
vptr.push_back((void*)pr);
printf("abcd %08X\n",pr);
printf("abcd %08X\n",vptr[vptr.size()-1]);
 


第一个printf打印出02001234, push_back加了(void*)则第二个打印00001234, 不加则打印02001234。

请大家看看,问题大概出在哪里?谢谢!

0个回答

暂无回答!