char* a=new char;a="abc";会泄露内存么?
来源:百度知道 编辑:UC知道 时间:2024/05/13 16:07:34
char* a=new char;a="abc";
会的,你原来分配给a的空间后,再次修改它的值 ,使原来的分配的内存失控,无法回收了。
修改动态分配了内存的指针后,如果需要修改,记得先回收。
char* a=new char;delete a;a="abc";
char *a=new char;a="abc";会泄露内存么?
不会,因为你定义的是一维数组,不过你上面的表达错误
char *a="new",char;a[]="abc";这样就不会报错了!
你这里char* a=new,你用char又用了指针,很明显,你这是要定义指向字符串数组指针,正确表达式为:char *a="new",char;a[]="abc";
如果第二个表达式我理解错误的话,你的意思就是说:将字符串"abc"给字符串变量a这个是没有错的,是正确的表达式,不会出现泄露内存!
一维数组的下标可以省,但是二维数组的列下标不能省,如char a[][10]是对的,char a[][]是错的,只有二维数组才会出现泄露内存的情况,因为它不能省列标
char *a=new char;a="abc";你上面并没有给固定的缓存区,而一维数组行标又可以省,所以你无论定义多少字符串,只要省行标,就不会出现泄露内存的情况!
会!
char *p =new char[..]
char* a=new char;a="abc";会泄露内存么?
cha a[]="zbc" 与char *b="abc"有什么区别
char *p= new char 与char *p = new char[1]有区别吗
char *pch=NULL;pch = new char[100]; 和char *pch= new char[100];有什么区别
*pVsipMsg = (PVSIP_MSG) new char[MsgSize]
char pch[100];与char *pch= new char[100];哪个好点
请问:定义一个char *p = new char[105]和定义一个char p[105] 有什么区别?
char a[10]="";是什么意思?
若“char*** a;char b[9][9][9];”可以“a=b”么?