首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于SID_AND_ATTRIBUTES,该如何处理

2012-02-21 
关于SID_AND_ATTRIBUTESstruct _SID_AND_ATTRIBUTES *copy_sid_a(SID_AND_ATTRIBUTES *sid_a, ULONG sid_a

关于SID_AND_ATTRIBUTES
struct _SID_AND_ATTRIBUTES *
copy_sid_a(SID_AND_ATTRIBUTES *sid_a, ULONG sid_a_size)
{
SID_AND_ATTRIBUTES *result;

if (sid_a == NULL)
return NULL;

result = (SID_AND_ATTRIBUTES *)malloc_np(sid_a_size);
if (result == NULL)
return NULL;

memcpy(result, sid_a, sid_a_size);

result->Sid = (char *)result + ((char *)(sid_a->Sid) - (char *)sid_a);

return result;
}
求教result->Sid = (char *)result + ((char *)(sid_a->Sid) - (char *)sid_a);这句话什么意思?((char *)(sid_a->Sid) - (char *)sid_a);表达了什么?

[解决办法]
首先申明,仅代表自己的一种看法,不一定正确
求教result->Sid = (char *)result + ((char *)(sid_a->Sid) - (char *)sid_a);这句话什么意思?((char *)(sid_a->Sid) - (char *)sid_a);表达了什么?
(char *)result=当前的内存地址(相对地址)
((char *)(sid_a->Sid) - (char *)sid_a)==sid_a->Sid在struct _SID_AND_ATTRIBUTES中的偏移
连起来就是,result->Sid=这个变量在当前内存中的地址

热点排行