中易网

c++中怎么delete一个用new申请内存的指针

答案:3  悬赏:70  
解决时间 2021-02-21 03:46
c++中怎么delete一个用new申请内存的指针,
char * p=new char;
*p="hello”;
delete p;//或者delete [] p;
这样会报错,为什么?
因为我要的空间不固定,所以不要申请固定的空间大小,这样子该怎么释放指针
最佳答案
char * p=new char; // 你申请的是一个字节的p指针
*p="hello”; //p指向的内容为“hello”,但是越界了
delete p;//或者delete [] p;//用delete p 释放是正确的,delete [] p是用来释放数组的。

如果申请的空间不确定,则简单的办法是用容器,系统自己动态的申请、释放内存。
如果想自己管理内存,就没有简单的办法了,需要重新申请一块更大的内存,并且将*p的内容与新的内容放进新申请的内存中。delete []p; 就 哦了。。
全部回答
char * p=new char[sizeof("hello")/sizeof(char)]; *p="hello”; delete[] p;
*p="hello”; <- 你报错根本就是报在这一句而不是delete吧?…… p的类型是char*,*p的类型是char 但是hello的类型是 const char* 一个const char*怎么能赋值给char………… 申请空间只能固定大小不能不固定大小,不知道大小的话是无法申请空间的。不过这个大小可以是变量,以下代码需要头文件cstring const char* pstr = "hello"; int pstrLen = std::strlen(pstr) + 1; char* p = new char[pstrLen]; std::strcpy(p, pstr); delete[] p; 如你所见,char*类型的字符串复制是不能用等号的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
“我心中的学生行为规范”金点子创编:结合小
在发酵好的白面中加入紫薯泥再发酵一会儿可以
神经性耳聋戴助听器后原有的听力会下降吗?
看见海面下的冰山属于光的什么现象
东华我想知道这个在什么地方
要去上海太平洋房屋面试,但还是有许多疑问,
显示器问题我的显示器有一条黄色的竖线是怎么
香飘飘煲仔饭地址在什么地方,想过去办事
谁有K歌之王完整粤语版的简谱
一……就造句
三羊照相馆地址在什么地方,想过去办事
去泰国的必备物品
求一款格斗类街机游戏名:1.两人对打2.角色只
非公980ti真的吃透1080p了吗
地心引力 为什么放手
推荐资讯
跪求APH百年孤独的完整版TXT
简单游在虚拟机上无法正常启动,老出现某些文
qq炫舞爱神亲亲装特效
克徕帝钻戒,IGI证书IGIM2G65290,38分裸钻,F色
有没有讲犯罪案例的书,中文的,最好有电子版
我是圆头,还是扁头啊?
61是质数吗
株洲市人民检察院信访接待室我想知道这个在什
从重庆主城到郑州主城 按一般件计算 韵达 圆
尚骨复元堂德州三和梅园店地址在哪,我要去那
有大神有林肯公园的Talking to myself得资源
Ben likes bear否定句怎么改
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?