我想  给  BYTE frame[50]赋不定长度的值,有时给前27个元素赋值,有时给前40个赋值,那么怎么处理赋值后面的,还有怎么得知赋值的空间长度是多少?

解决方案 »

  1.   

    先初始化,BYTE frame[50] = {0};
    搞个索引来计数,不就知道了赋值了多少个元素了
    int nIndex = 0;for(...)
    {
     frame[nIndex++] = ...;
    }
      

  2.   

    你应该写一个类来处理,因为这个数组有很多属性啊。class CByteArray
    {
    private:
    int nTotalSize; //记录空间大小
    int nUserSize; //记录空间使用的大小
    public:
    void setSize(int i);
    int GetByteSize() { return nUserSize;} //获取使用过的大小
    int WriteData();
    int ReadData();private:
    void GetfreeSize(); { return nTotalSize - nUserSize;}
    }
      

  3.   

    先定义你的BYTE frame[50]全部为0,然后根据传入的数组长度MEMCPY就可以了,当然,你自己要判断是否超出50的范围
      

  4.   

    //顺序赋值,index 从第几位开始赋值, 你把返回的值加起来就行
    //例如替换frame中的 1-20个,index=1
    int ReNum(BYTE *pframe,BYTE *psrc,int index)
    {
      int i,num=strlen(psrc),count =min(50,index+num);
       for( i=index;i<count;i++){
         pframe[i]=psrc[i];
      }
       return num;
    }