C++问题 {name=new char[strlen(na)+1] strcpy(name

C++问题{name=newchar[strlen(na)+1]strcpy(namena)}今天我看了些类的派生有些题目用了有些没用所以我好奇想问下这个分配内存函数什么... C++问题 {name=new char[strlen(na)+1] strcpy(name na)}今天我看了些类的派生 有些题目用了有些没用 所以我好奇想问下这个分配内存函数什么时候要用什么时候不要用??
是不是有变量就得用了 。因为我做了一题关于汽车基类没用new 另外一题关于查找某人具体职位的基类用到了new所以有点疑惑
展开
 我来答
zsthit
推荐于2017-09-07 · TA获得超过463个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:173万
展开全部
我给你分析一下你这个语句中为什么使用new吧,首先new的结果是从堆中划分一块区域,动态创建一个类型的数据,最后返回该区域的指针。你调用strcpy操作时把这块内存的地址传了进来,然后才这个地址开始复制na的内容,如果你不是用new操作的话,就会从name指针指向的位置开始复制na的内容,这样,如果name是一个空指针或者name指向一个不确定的位置,就会出现错误,因为修改一个不确定的位置的值是未定义的,不合法,new操作之后相当于得到了一段属于自己的内存空间,而name指向这段空间的初始地址,所以你可以对它进行赋值操作,仔细体会一下什么时候该用吧
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
451006071
2012-07-19 · TA获得超过1332个赞
知道小有建树答主
回答量:368
采纳率:57%
帮助的人:331万
展开全部
new运算法是给我们分配内存的,当我们需要额外的内存空间的时候就用它给我们分配空间,我觉得你的问题有点怪怪的,只有我们需要更多地空间才会用new给我们分配,不然要他干什么,对吧?我也不清楚你那个什么类,也不知道你研究什么知识所以不好说,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天河水人
2012-07-18 · TA获得超过445个赞
知道答主
回答量:215
采纳率:0%
帮助的人:104万
展开全部
当你需要设置变量时就用new来分配一个空间给变量,程序结束之前要把所有的变量清空,否则会占用内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
135429617
2012-07-18 · 超过32用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:92.9万
展开全部
当然是你需要的时候才用啊,跟继承有什么关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式