如何从 C++ 中的外部函数调用删除运算符
How do I call delete operator from an outer function in C++?
如果我有这样的东西:
char* plainText = init();
delete [] plainText;
一切正常,动态内存标记为可用。
但是当我打电话给这样的东西时:
char* plainText = init();
deletePlainText(plainText);
哪里
void deletePlainText(char *plainText)
{
delete[] plainText;
}
内存没有标记为空闲,它是这样的:
+ plainText 0x005cb160 "îþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþ... char *
是否可以从外部函数调用删除运算符以及如何调用?
原始来源:
http://pastebin.com/1pybC02t
http://pastebin.com/KbtfG5Cw
http://pastebin.com/NSyULHaF
如果你在VS中看到内存窗口(变量'plainText'的地址),它看起来如下:
0x0056BB28 ee fe ee fe ee fe ee fe ee fe ee fefe îþîþîþ
这是来自 的信息 : http://en.wikipedia.org/wiki/Magic_number_%28programming%29
FEEEFEEE "fee fee",由Microsoft的调试 HeapFree() 用于标记 释放堆内存。附近的一些内部簿记值可能具有 高词也设置为 FEEE。
因此,这表明您的内存已被释放,现在您不应该使用它。这个幻数是Microsoft特定的内存管理器行为。
相关文章:
- 调用外部函数,无法指定类型 C++/MVS
- 如何在 C/C++ 中从外部库调用函数
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- 内联asm编译器屏障(内存阻塞器)是算作外部函数,还是算作静态函数调用
- 从外部文件C++调用函数
- llvm 调用一个以 char * 作为参数的外部函数
- 排除外部错误R6025-纯虚拟函数调用
- 调用外部函数(从一个exe到另一个exe)
- 如何从外部文件调用C++函数
- C 代码如何在没有前导下划线的情况下调用外部函数
- 从类中创建一个信号来调用外部函数
- windows DLL函数调用外部exe文件无效
- Visual C++-以函数为参数的函数调用:更改导致无法解析的外部
- 在内联函数中调用外部函数
- 删除内联函数调用将导致无法解析的外部符号错误
- 无法解析的外部符号调用函数
- 调用外部函数模板中类模板的函数模板
- 使用PowerBuilder 10.0错误从DLL调用外部函数
- 如何从 C++ 中的外部函数调用删除运算符
- 窗口下的外部函数调用进行未定义的引用