考虑一个简单的结构:
struct abc
{
int a;
char b;
}
Run Code Online (Sandbox Code Playgroud)
我在一个定义为其结构的变量中得到了一些值,现在我想打印下面的内容.
*a = [some value]
b = [some character]*
Run Code Online (Sandbox Code Playgroud)
对于任意结构实现此目的的最佳方法是什么,而不必为我遇到的每个结构编写dump ...(...)函数?
我的开发环境是[Windows 7; 视觉工作室2010; 86].
我有一个为服务器2003长时间回来构建的DLL.当我在我的项目中使用它并按照新/删除序列使用类时,应用程序在删除调用期间崩溃.即使没有新的和删除之间的任何其他调用我也验证了相同.当我用malloc/free替换new/delete时,没有崩溃.如果我只是声明一个没有new的类的实例,则退出作用域时不会发生崩溃.
什么可能出错?这是我们公司的内部库,所以我无法命名它和其他类似的东西.
附加信息: 要首先使用此库,我必须关闭VS功能"将wchar_t视为内置类型".
代码很简单
{
CLogger * myLog = new CLogger();
delete myLog; // Crash happens here
}
{ // No crash here
CLogger MyLog;
}
{
CLogger * myLog = (CLogger *) malloc (sizeof(CLogger));
free (myLog); // This does not crash.
}
Run Code Online (Sandbox Code Playgroud)
这是专有的库,我不能发布构造函数和析构函数.