使用了malloc的类对象 出现内存问题

来源:百度知道 编辑:UC知道 时间:2024/07/03 03:28:39
我的这个类是这么使用的:
TpcString p("jjj");
//TpcString s("sss");
p += "fffs";
printf(p.toANSI());
这样使用,不会出现什么问题。
但如果注释的那一行去掉,那么程序一开始执行就会出错(是自动被windows关闭,没有错误报告的。)我的操作系统是WindowsXP sp3。使用的IDE是DevCpp 4.9.9.2。
下面是关于这个TpcString类的定义。
#pragma once
#include <string.h>

class TpcString{
public:
/** 初始化一个字符串 **/
TpcString();
TpcString(char *lpsrc);
TpcString(wchar_t *lpwsrc);
TpcString(long isrc);
/** 清理 **/
virtual ~TpcString();
/** 初始化(initlize)要自动完成,而清理(finalize)则有可能要手工调用,所以一个是private另一个是public。 **/
void finalize();

/** 重载+=符号,使类可以自动接收其它格式信息并转换成Unicode格式串加到原符号末尾。**/
void operator+= (wchar_t* lpwcat);
void operator+= (char* lpcat);
void operator+= (long icat);
//void operator+= (TpcString tscat);

/** 将本对象中存储的信息输出为Unicode字符串或ANSI字符串。 **/
wchar_t *toUnicode();
char *toANSI();
private:
w

能不能把完整的程序发过来, 特别是重载符号+=的实现.
程序开始出错可以断定不是操作系统的问题, 应该是构造函数出错. 你也可以在class的构造函数里撒个断点,单步走一下看看.

注释那一行是没有什么用的啊。去掉无所谓才对社。
静观其变