小编Zhi*_*aas的帖子

打印C++结构中所有字段的值

考虑一个简单的结构:

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 ...(...)函数?

c++ structure visual-c++

20
推荐指数
2
解决办法
3万
查看次数

使用new/delete崩溃,但不能使用C++代码中的malloc/free崩溃

我的开发环境是[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)

这是专有的库,我不能发布构造函数和析构函数.

c++ crash visual-studio-2010 new-operator visual-c++

2
推荐指数
1
解决办法
2673
查看次数