读书人

delete的有关问题

发布时间: 2012-04-28 11:49:53 作者: rapoo

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 []用的没有问题!!

读书人网 >C++

热点推荐