首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

delete的有关问题

2012-04-28 
delete的问题代码如下:C/C++ codeLPTSTR pFileNamepFileName new char[1024]...delete [] pFileName

delete的问题
代码如下:

C/C++ code
LPTSTR pFileName;pFileName = new char[1024];...delete [] pFileName;



上面的delete [] pFileName;我也试过delete pFileName;运行时程序崩溃。
请问问题何在?

[解决办法]
定义改为char*
[解决办法]
咋构造的
[解决办法]
char* pFileName;
pFileName = new char[1024];
...
delete pFileName;
[解决办法]
new 的时候有 [] 

delete 的时候就要有 []

这是规定,出错了不怪人.不出错就怪编译器不是很负责任.但是编译没必要为你这种错误负责
[解决办法]
看下你delete的时候指针是否还有效
或者
char[] pFileName = new char[1024];
这样声明看看
[解决办法]
LPSTR Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts. 
LPTSTR An LPWSTR if UNICODE is defined, an LPSTR otherwise.
这个是msdn的解释。。你懂的 
探讨
代码如下:

C/C++ code
LPTSTR pFileName;
pFileName = new char[1024];
...
delete [] pFileName;



上面的delete [] pFileName;我也试过delete pFileName;运行时程序崩溃。
请问问题何在?

[解决办法]
LPTSTR有可能是char* 也有可能是wchar_t* 首先写的就不规范!我这定义了UNICODE 编译就过不去!
用了new []就必须用delete [],配套使用的。delete [] 表示要在数组的每个元素上都要析构。
所以楼主delete []用的没有问题!!

热点排行