各位大虾:
有如下代码:
if ( NULL == ( GUI_PAGE_3->menuIco =
( MENUICO * )malloc ( sizeof ( MENUICO ) * GUI_PAGE_3->Icon_Num )))
{
return ;
}
/*
...................
*/
memcpy (GUI_PAGE_3->menuIco + sizeof ( MENUICO ), &tmpMIC, sizeof ( MENUICO ));
中间略去部分代码。
sizeof ( MENUICO )的大小为0x1c,GUI_PAGE_3->menuIco通过malloc分得的地址为0x200043B0,但是,一旦加上后面的偏移量的时候,就出问题了,直接加了0x310大小的偏移量,不知道什么原因,请问有谁能帮我解释一下吗? |