C++ char*类型new的内存释放出问题了

成员变量char*point;在构造函数中point=newint[10];point="hello";在析构函数中delete[]point;运行的时候出现错误这是为什... 成员变量char * point;
在构造函数中point = new int[10];point="hello";
在析构函数中delete[] point;
运行的时候出现错误 这是为什么 如果把point="hello";删了就不报错了
不好意思 是我打错了 是point = new char[10];
代码如下 :
#include<iostream>
using namespace std;

class C
{
char* point;
public :
C()
{
point = new char[5];
point = "fda";//这句话注销了就对了 不知道为什么
}
~C()
{
delete[] point;
}

};
main()
{
C c;
}
不知道为什么会报错
展开
 我来答
萬哩挑壹
2015-10-18 · 知道合伙人教育行家
萬哩挑壹
知道合伙人教育行家
采纳数:19733 获赞数:47578
校英语竞赛第一名

向TA提问 私信TA
展开全部
delete [] q;//释放原来的
delete []p;//释放现在的 '
记住:内存释放了之后不能再使用该块内存,最好在释放之后将指针变量赋值为空 。
delete [] q;
q= NULL;

C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
百度网友ead7934
2010-12-13 · TA获得超过286个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:113万
展开全部
point = new char[5];时 point指向了一新分配的内存
point = "fda";时,point抛弃了刚new的内存,指向了"fda"所在地址。fda"本身已经被分配好内存。所以刚才的new内存已经失去意义,因为point已经不再指向它了。这也是造成内存泄露的一个原因,因为刚动态分配的那块内存已经没办法释放了(被point指针抛弃了,没办法再找到这块内存地址,也就没法delete)。
"fda"的内存不是动态分配的,所以delete时出错。
----------------------------------------------------------------------
这要一个一个字符来操作:point[0] = 'f'; point[1] = 'd'; point[2] = 'a'; 或者参考 jxq61 兄的回答。(注意,这里才是真正的把字符存到新分配的内存里)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
labikkkk
2010-12-11 · TA获得超过383个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:201万
展开全部
point 是指针。指向了一个字符串。这个字符串是占六个字节的。point = new int[10]; 这个是申请了一个动态内存,int型的占4个字节。 int[10].只是一个整形变量,并不是申请了10个int型的内存。而是,只申请了一个。六个字节的东西往四个字节里存,能不出错吗?
我是学c语言的,c++只是看了看。我按照c语言的东西来解释的。希望对你有用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c6f1823c2
2010-12-11 · 超过19用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:69.5万
展开全部
程序在析构函数中释放字符数组的时候失败了,程序试图去释放尚未分配的内存空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baoda1234
2010-12-11 · TA获得超过116个赞
知道答主
回答量:82
采纳率:0%
帮助的人:82.2万
展开全部
point = new int[10] 表示你分配了 10个int型的空间,你给它赋字符串肯定错了。
就如 int s[5] = "hello"
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式