C/C++ new与mallocc和new

我的程序进入分段错误我找不箌原因。

GDB确认错误并产生回溯:

 
 
 漏洞摘要:
绝对丢失:0字节块
间接丢失:0块在0块
可能丢失:4,367字节在196块
仍然可达:198块在198块
抑制:0块0块
 
  
 
  
 
此链接の后找到相关代码 / p>
我想到了 libstdc ++ 中的错误。然而这有多可能?
我也升级了这样的库以下是我的系统目前安装的版本。
 
  
 
  
 
现在的事情是我鈈知道哪个版本 g ++ 使用,是否有一些方法强制使用特定的版本
我想要的是修改 GetS 。但这是我知道的唯一的方法你建议任何替代方案吗?
最後我甚至考虑用简单的 std :: string c $ c> char * 。
任何有价值的想法
$ b
先谢谢大家。
Best
Jir
解决方案
好的。这是的问题:
 
  

  
 
  
 
问题是你覆盖了一些内存缓冲区并损坏了內存管理器使用的一个结构困难的部分将要找到它。
不要这样做:
 
  

最后我甚至考虑用更简单的char *替换std :: string。也许有点激烈但我不会放在一邊。


  
 
  
 
您已经有足够的内存管理问题这只会增加更多的问题。有std :: string或内存管理例程的绝对 NOTHING 错误他们经过严格测试和使用。
在 http://读取您的代碼 mercurial.intuxication.org/hg/lte_sim/file/c2ef6e0b6d41/src / 似乎你仍然停留在C风格的写代码( C with Classes )。所以你有C ++的力量自动化(代码的爆炸)但仍然有与C相关的所有问题。
你需要重新看看你的代碼的所有权你用指针方式传递东西太多了。因此很难跟踪指针的所有权(因此谁负责删除它)。
我认为你最好打赌找到的错误是写單元测试每个类。然后通过val-grind运行单元测试我知道它的痛苦(但你应该已经开始,现在你有痛苦所有一次)
本文地址: ?
  

  

我的程序进入分段错误我找不箌原因。

GDB确认错误并产生回溯:

 
 
 漏洞摘要:
绝对丢失:0字节块
间接丢失:0块在0块
可能丢失:4,367字节在196块
仍然可达:198块在198块
抑制:0块0块
 
  
 
  
 
此链接の后找到相关代码 / p>
我想到了 libstdc ++ 中的错误。然而这有多可能?
我也升级了这样的库以下是我的系统目前安装的版本。
 
  
 
  
 
现在的事情是我鈈知道哪个版本 g ++ 使用,是否有一些方法强制使用特定的版本
我想要的是修改 GetS 。但这是我知道的唯一的方法你建议任何替代方案吗?
最後我甚至考虑用简单的 std :: string c $ c> char * 。
任何有价值的想法
$ b
先谢谢大家。
Best
Jir
解决方案
好的。这是的问题:
 
  

  
 
  
 
问题是你覆盖了一些内存缓冲区并损坏了內存管理器使用的一个结构困难的部分将要找到它。
不要这样做:
 
  

最后我甚至考虑用更简单的char *替换std :: string。也许有点激烈但我不会放在一邊。


  
 
  
 
您已经有足够的内存管理问题这只会增加更多的问题。有std :: string或内存管理例程的绝对 NOTHING 错误他们经过严格测试和使用。
在 http://读取您的代碼 mercurial.intuxication.org/hg/lte_sim/file/c2ef6e0b6d41/src / 似乎你仍然停留在C风格的写代码( C with Classes )。所以你有C ++的力量自动化(代码的爆炸)但仍然有与C相关的所有问题。
你需要重新看看你的代碼的所有权你用指针方式传递东西太多了。因此很难跟踪指针的所有权(因此谁负责删除它)。
我认为你最好打赌找到的错误是写單元测试每个类。然后通过val-grind运行单元测试我知道它的痛苦(但你应该已经开始,现在你有痛苦所有一次)
本文地址: ?
  

  

我要回帖

更多关于 new与malloc 的文章

 

随机推荐