BYTE数组问题,100分! :D memcpy很方便的自己记录一下长度就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你用MFC,用CString也很方便的CString csNew;csNew.Format("%s%s",csOld1,csCN); VOID * MemInsert(VOID * pMem, DWORD dwMemSize, VOID * pInsert, DWORD dwInsertSize, DWORD dwInsertPos){ DWORD dwMoveSize; BYTE * pSor, * pDest; pSor = (BYTE *)pMem + dwInsertPos; pDest = pSor + dwInsertSize; dwMoveSize = dwMemSize - dwInsertPos; memmove(pDest, pSor, dwMoveSize); memcpy(pSor, pInsert, dwInsertSize); return pMem;} memcpy就可以了,如果你觉得效率不高的化,可以先申请足够大的内存块,然后划成n个BYTE sn[100]的区域,你每次写数据的时候倒着写就可以了,这样就可以不用cpy了 我估计楼主的意思是这样:它有一数据,是尽局部变量,里面存放着那些东西.现在他想在这些东西前面加上别的东西,而是后面还可能有多次类似的添加,但原来的数组是局部变量,楼主"不能"访问数组前面的内存,于是问题就出现了! 我的意见,如果你处理的东西其所占内存长度是一定的,你可以在内存"倒着"存放,比如原数据是123,实际在内存是321,然后你要在逻辑上的"前面"加上 456,则实际上在"后面"加上"654"就可以,于是,逻辑上是"456123",内存中是"321654",明白不?当然你自己读的时候也要反着读.你自己还需要维护一个指针指向其最后保存的有效位置,当然,用一个记录有效长度的整形变量也可以. 如果每次存放的东西长度不同,则你最好用链表!大约可以这样:typedef struct list{int len;//本部分内存长度 char * pbuf;//本部分实际储存内容的缓存区 list * next;}list;定义一个表头 "list head",然后...,不会的话去看数据结构.===========================================================周末,心情还不算太坏,说了不少,希望对你有用.不对勿怪啊@! 新人求教关于 图片的参数获取与建立 c,c++中的struct有什么不一样 如何实现右键菜单的具体功能啊? 成都搞的工资? 关于使用CListCtrl时,lParam传递的问题 如何在一个EditBOX1输入字母的同时,显示在另一个EditBox2上(也就是同步更新) 求教几个常见的问题... (100分)AcitveX控件的问题! 一个关于数据库备份的问题!!!非常急!!!先谢谢各位了! 如何得到用户正在处理的窗口的HWND? 用指针进行复制的问题,100分 MFC Windows程序设计和Windows 程序设计(第5版)
csNew.Format("%s%s",csOld1,csCN);
{
DWORD dwMoveSize;
BYTE * pSor, * pDest;
pSor = (BYTE *)pMem + dwInsertPos;
pDest = pSor + dwInsertSize;
dwMoveSize = dwMemSize - dwInsertPos;
memmove(pDest, pSor, dwMoveSize);
memcpy(pSor, pInsert, dwInsertSize);
return pMem;
}
我估计楼主的意思是这样:它有一数据,是尽局部变量,里面存放着那些东西.现在他想在这些东西前面加上别的东西,而是后面还可能有多次类似的添加,但原来的数组是局部变量,楼主"不能"访问数组前面的内存,于是问题就出现了! 我的意见,如果你处理的东西其所占内存长度是一定的,你可以在内存"倒着"存放,比如原数据是123,实际在内存是321,然后你要在逻辑上的"前面"加上 456,则实际上在"后面"加上"654"就可以,于是,逻辑上是"456123",内存中是"321654",明白不?当然你自己读的时候也要反着读.你自己还需要维护一个指针指向其最后保存的有效位置,当然,用一个记录有效长度的整形变量也可以. 如果每次存放的东西长度不同,则你最好用链表!大约可以这样:
typedef struct list
{int len;//本部分内存长度
char * pbuf;//本部分实际储存内容的缓存区
list * next;
}list;定义一个表头 "list head",然后...,不会的话去看数据结构.===========================================================周末,心情还不算太坏,说了不少,希望对你有用.不对勿怪啊@!