:D memcpy很方便的
自己记录一下长度就可以了 

解决方案 »

  1.   

    如果你用MFC,用CString也很方便的CString csNew;
    csNew.Format("%s%s",csOld1,csCN);
      

  2.   

    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;
    }
      

  3.   

    memcpy就可以了,如果你觉得效率不高的化,可以先申请足够大的内存块,然后划成n个BYTE   sn[100]的区域,你每次写数据的时候倒着写就可以了,这样就可以不用cpy了
      

  4.   


     我估计楼主的意思是这样:它有一数据,是尽局部变量,里面存放着那些东西.现在他想在这些东西前面加上别的东西,而是后面还可能有多次类似的添加,但原来的数组是局部变量,楼主"不能"访问数组前面的内存,于是问题就出现了! 我的意见,如果你处理的东西其所占内存长度是一定的,你可以在内存"倒着"存放,比如原数据是123,实际在内存是321,然后你要在逻辑上的"前面"加上 456,则实际上在"后面"加上"654"就可以,于是,逻辑上是"456123",内存中是"321654",明白不?当然你自己读的时候也要反着读.你自己还需要维护一个指针指向其最后保存的有效位置,当然,用一个记录有效长度的整形变量也可以. 如果每次存放的东西长度不同,则你最好用链表!大约可以这样:
    typedef struct list
    {int len;//本部分内存长度
     char * pbuf;//本部分实际储存内容的缓存区
     list * next;
    }list;定义一个表头 "list head",然后...,不会的话去看数据结构.===========================================================周末,心情还不算太坏,说了不少,希望对你有用.不对勿怪啊@!