C/C++技巧
+ -

C/C++技巧 多变数据

2023-06-06 7 0

有这样一种情况,我需要存储一个用户的姓名,电话,邮箱等各种信息,各种信息都是字符串,那么该怎么能比较高效且内存的使用比较高了?
我们可以采用偏移计算的方式:

typedef sturct _MY_STURCT
{
    int totallen;
    int nameoffset;
    int addressoffset;
    int mailoffset;
}MY_STRUCT,*PMY_STRUCT;

int totallen = sizeof(MY_STURCT) + strlen(pName)  + strlen(pAddress) + strlen(pMail);
PMYSTURCT pMy = malloc(totallen );
if(pMy == NULL) return;
pMy->nameoffset = sizeof(MY_STURCT);
pMy->addressoffset  = pMy->nameoffset  + strlen(pAddress);
pMy-> mailoffset = pMy->addressoffset  + strlen(pMail);

PCHAR pName  = (PCHAR)pMy + pMy-> nameoffset;
PCHAR pAddress = (PCHAR)pMy + pMy-> addressoffset;
PCHAR pMail  = (PCHAR)pMy + pMy-> mailoffset;

0 篇笔记 写笔记

C/C++技巧 多变数据
有这样一种情况,我需要存储一个用户的姓名,电话,邮箱等各种信息,各种信息都是字符串,那么该怎么能比较高效且内存的使用比较高了?我们可以采用偏移计算的方式:typedef sturct _MY_STURCT{ int totallen; int nameoffset; in......
C/C++技巧 变长数据
比如在进行网络收发数据时,数据的长度不可变的,一般我们是这样定义数据的。typedef struct _PROTOCOL_STRUCT{ int nLen; unsinged char pBuffer[1]; //gun linux可定义为0的数组} PROTOCOL_ST......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!