struct A{
int a;
float b;
bool b;
};struct B{
int aa;
A Aa;
};const CopyB* pCopy;//全局的
int Copy(const B* pB)
{
pCopy = pB;
return 0;
}请问各位高手这样可以把pB复制到pCopy吗?
如果不能,请帮帮忙解决下,谢谢!
int a;
float b;
bool b;
};struct B{
int aa;
A Aa;
};const CopyB* pCopy;//全局的
int Copy(const B* pB)
{
pCopy = pB;
return 0;
}请问各位高手这样可以把pB复制到pCopy吗?
如果不能,请帮帮忙解决下,谢谢!
复制用memcpy
int a;
float b;
bool b;
};struct B{
int aa;
A Aa;
};const CopyB CopyObj;//全局的
int Copy(const B* pB)
{
CopyObj.aa = pB->aa;
CopyObj.Aa.a = pB->Aa.a;
CopyObj.Aa.c = pB->Aa.c;
return 0;
}
以上才叫复制你以前的代码只能叫保存指针,其缺点为:
1.只能保存一个
2.当传入那得指针所指的对象销毁时,保存那个直至就失效了,再使用时,就会出现内存崩溃
int Copy(const B* pB)
{
pCopy = pB;
return 0;
}改成
CopyB m_b;
int Copy(const B b)
{
m_b = b;//会调用复制构造函数 (C++中结构体也是类,默认即有这个函数,不用自己添加)
return 0;
}
struct A{
int a;
float b;
bool b;
};struct B{
const int aa;
const A* const Aa;
};const CopyB* pCopy;//全局的
int Copy(const B* pB)
{
把pB复制到pCopy中(pB是动态变化的)
return 0;
}请问各位高手zm样可以把pB复制到pCopy吗?
如果不能,请帮帮忙解决下,谢谢!
pCopy=new CopyB;
结构是可以new的吧
CopyMemory(pCopy,pB,sizeof(CopyB));应该可以吧
用const修饰,这个指针指向的内容就不能改变了,所以不能向它赋值
但这个指针可以指向别处lz要么把const修饰去掉,自己开辟空间拷贝
要么就用你现在的代码,但这样就不是复制了