把一个CMenu指针指向的内容COPY到另一个CMenu空指针指向的内容,有什么方法?

CMenu*b;memcpy((CMenu*)b,(CMenu*)a,sizeof(CMenu));//假设*a已初始化这个会出错。除了这个还有什么办法?... CMenu *b;
memcpy((CMenu *)b,(CMenu *)a,sizeof(CMenu));//假设*a已初始化
这个会出错。
除了这个还有什么办法?
展开
 我来答
百度网友3028fd6b8
2010-01-19 · TA获得超过686个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:0
展开全部
空指针指向的内容?

空指针是指向0地址的,是不能被直接使用的,因为0地址是系统使用的。

给空指针COPY内容会出现非法访问的错误。

你要COPY的话,应该先给空指针分配有效内存,让它指向合法的内存地址,然后进行copy就没有问题。

比如:
b = (CMneu*)malloc(sizeof(CMenu));
memcpy((CMenu *)b,(CMenu *)a,sizeof(CMenu));

这样就不会有问题了。
忘至白葬不情必0T
2010-01-19 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
b只是一个指针,没有分配内存空间.
试试CMenu *b=new CMenu;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式