//定义了一个BYTE类型的数组
m_byte[512*1024];
//m_byte数组用读取文件的方式赋值
read= fread(m_byte,1,count,fp);
//现在我定义了一个结构体
typedef struct comInfo
{
CString name;
BYTE m_codedata[512*1024];
} comInfo;
//定义一个结构体数组变量
comInfo com[11];
com[i].name="名字";
//怎么样将m_byte赋值给com[i].m_codedata ?
//还有就是C++里面的数组定义的时候非的指定长度吗,应该可以动态增长吧,要怎么写!谢谢各位!并祝各位新年快乐!
char *buf=new char[x];
char *buf=new char[x];
{
CString name;
int iLen;
BYTE *pcodedata;
} comInfo;
//------
comInfo com1;
com1.iLen = 1587;
com1.pcodedata = new BYTE[iLen];
如果希望能够动态增长,你可以用CArray<BYTE,BYTE>来做BYTE数组,用这个类的Copy函数来实现数组的复制,需要头文件#include <afxtempl.h>。
应该是内存溢出,该怎么解决呢?
至于长度要增加,可以用new动态申请,地址进行连接就好了
要想保留以前数据,可以用malloc分配,realloc重新分配,free释放。realloc可以保留以前数据
可以重新分配,之后再把原来的数据copy带新的内存中而实现动态数组。。
{
CString name;
BYTE *m_codedata; comInfo() : name(_T("")),m_codedata(NULL){}
~comInfo()
{
if (m_codedata != NULL)
delete [] m_codedata;
}
void setdata(const BYTE* buffer, int size)
{
m_codedata = new BYTE(size);
memcpy(m_codedata,buffer,size);
}
} comInfo;
//定义一个结构体数组变量
comInfo com[11];
com[i].name="名字";
com[i].setdata(m_byte,size);