vector 代码编译成功,但是运行出错。该怎么解决
vector 代码编译成功,但是运行出错。
运行时,windows直接提示程序已停止工作,麻烦帮我看下哪里出问题了。
------解决方案--------------------
buff=new unsigned char(len);
buff=new unsigned char[len];
感觉楼主是这个意思
------解决方案--------------------
buff=new unsigned char(len);
这句确实有问题
运行时,windows直接提示程序已停止工作,麻烦帮我看下哪里出问题了。
#include <vector>
using namespace std;
typedef struct cycledata
{
unsigned int key;
int delay;
}CYCLEDATA;
vector<CYCLEDATA> p;
void CreateTestData()
{
CYCLEDATA q[2]={0xffeeddcc,1000,0xaabbccdd,2000};
p.push_back(q[0]);
p.push_back(q[1]);
}
vector<unsigned char>* Outdata2Byte(vector<CYCLEDATA>& p)
{
unsigned char* buff=NULL,*temp;
vector<CYCLEDATA>::iterator iter;
vector<unsigned char>* outbuff=new vector<unsigned char>;
vector<unsigned char>::iterator iter1;
int len=p.size()*8;
int i=0,count=0;
buff=new unsigned char(len);
temp=buff;
for(iter=p.begin();iter!=p.end();iter++)
{
*buff++=(iter->key&0xff000000)>>24;
*buff++=(iter->key&0x00ff0000)>>16;
*buff++=(iter->key&0x0000ff00)>>8;
*buff++=iter->key&0xff;
*buff++=(iter->delay&0xff000000)>>24;
*buff++=(iter->delay&0x00ff0000)>>16;
*buff++=(iter->delay&0x0000ff00)>>8;
*buff++=iter->delay&0xff;
}
for(i=0;i<len;i++)
{
outbuff->push_back(temp[i]);
}
return outbuff;
}
vector<unsigned char>* GetTestData(/*vector<CYCLEDATA> &p*/)
{
CreateTestData();
return Outdata2Byte(p);
}
int main()
{
vector<unsigned char>* p=GetTestData();
return 0;
}
------解决方案--------------------
buff=new unsigned char(len);
buff=new unsigned char[len];
感觉楼主是这个意思
------解决方案--------------------
buff=new unsigned char(len);
这句确实有问题