刚开始学STL,想在一个链表或向量中保存等长的二进制数,于是写了以下的语句:
char d3[6];
vector<char [6]> myvector;
vector<char [6]>::iterator p;
sprintf(d3, "%s", "uvxyz");
myvector.push_back(d3);
编译的时候告诉我:x:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(810): error C2440: “初始化” : 无法从“const char [6]”转换为“char [6]”请问是怎么回事?
char d3[6];
vector<char [6]> myvector;
vector<char [6]>::iterator p;
sprintf(d3, "%s", "uvxyz");
myvector.push_back(d3);
编译的时候告诉我:x:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(810): error C2440: “初始化” : 无法从“const char [6]”转换为“char [6]”请问是怎么回事?
解决方案 »
- 关于QueueUserAPC调用函数的问题
- [windows下地址反向计算]
- 今天头疼胃疼,散粉
- (急)招聘VC++程序员,待遇从优(深圳)
- 求教急!!如何在dialog对话框中显示一副BMP,我是做汇编语言的,vc不熟
- 关于QueueUserWorkItem API的一个问题,紧急求助,兄弟们帮帮忙~~
- 如何动态设置CEdit的取值范围??????????????????????????????????????????????????????????????????????????????????????????????????
- 如何获得最近失活的视图类指针??
- 请问谁会在editplus中对turbo C 3.0进行设置?为什么我设置好后对程序进行编译时出现:Unable to excute command "tlink.exe"???
- 这样的控件是用什么自绘的
- VC6,CDialog重复调用DoModal失败
- 用VC编的一个窗口,关闭之后怎么线程还在啊?
{
char a[6];
}你这么来就可以了。
template<int nBufferSize>
class CFixedBuffer
{
public:
CFiexedBuffer()
{
ZeroMemory(m_Buffer,sizeof(m_Buffer));
}
CFixedBuffer(const CFixedBuffer& rhs){
operator=(rhs);
}
const CFixedBuffer& operator=(const CFixedBuffer& rhs)
{
CopyMemory((char*)m_Buffer,(char*)rhs.m_Buffer,sizeof(m_Buffer));
return *this;
}
operator char* (){return reinterpret_cast<char*>(m_Buffer);}
private:
char m_Buffer[nBufferSize];
};vector<CFixedBuffer<6> > vtFixedBuffer;
CFixedBuffer<6> aFixedBuffer;
sprintf(aFixedBuffer,"%s","test");
vtFixedBuffer.push_back(aFixedBuffer);
唉,这个东西好象不如传说中的好用呀.