CString m;
m="ffff";
char* buf = new char[50];
memset(buf,0,50);
buf = m.GetBuffer(m.GetLength());
delete buf;这段程序在delete buf 时出错?请问是什么原因,如何解决。
多谢!!
m="ffff";
char* buf = new char[50];
memset(buf,0,50);
buf = m.GetBuffer(m.GetLength());
delete buf;这段程序在delete buf 时出错?请问是什么原因,如何解决。
多谢!!
delete buf 实际上是删除了CString储存字符的地方,当然会出错
所以,delete buf必然出错
m="ffff";
char* buf = new char[50];char *p;
p=buf;
memset(buf,0,50);
buf = m.GetBuffer(m.GetLength());....
delete []p;
char* buf = new char[50];
不必delete
然后new和delete 都不用。或者
char* buf = new char[50];
memset(buf,0,50);
strncpy(buf,m.GetBuffer(m.GetLength()),m.GetLength();
m.ReleaseBuffer();
delete buf;
int i ;
m="ffff";char* buf = new char[50]; char* buf1 = buf ;
for ( i=0; i<m.getlength(); ++i)
{
*buf1++ = m[i] ;
}delete buf;