我的C ++程序中的错误看起来很奇怪。 (调试进度更新) [英] Bug in my C++ program seems really strange. (Update on debugging progress)
问题描述
嗨。
我似乎在程序中找到了这个bug方面取得了一些进展。我已经停用了bignum包中的所有内容,除了
返回BigFloat对象之外。我甚至瘫痪了所有的
构造函数。所以现在使用
的所有操作和构造函数都只返回BigFloats但实际上没有任何内存访问
任何点,也没有任何分配。但是,当我重新启用分配内存的构造函数的那些部分时,_then_启用_b $ _内存的_de_structor部分,出现错误。当我去分配数字时,它似乎只有
。缓冲区(在构造函数中)
digits = new DIGIT32 [length];
并且免费使用(在析构函数中)
删除数字;
或:
(在构造函数中分配)digits =(DIGIT32
*)malloc(length * sizeof(DIGIT32));
(在析构函数中免费)免费(数字);
当我不打电话给免费或删除,但是,崩溃没有出现。
但它似乎不是需要记忆的东西然后
访问它我试过没有首先分配和
" digits"设置为虚拟指针,并且没有任何错误或任何尝试访问内存,因为这会导致程序崩溃。当你在构造函数中分配内存并在
析构函数中释放它时,它只会发生
。在分配后立即释放它,在
构造函数中,不会导致崩溃错误。
无论如何,给出了什么?
>
推荐答案
哎呀!抱歉双重发布。 Darn,
Google崩溃......
Ooops! Sorry about the double posting. Darn,
Google crashed...
mike3写道:
mike3 wrote:
8月31日晚上10点32分,Alf P. Steinbach < al ... @ start.nowrote:
On Aug 31, 10:32 pm, "Alf P. Steinbach" <al...@start.nowrote:
....
....
http://www.mediafire.com/?cfmzd1y3yij
如何构建所有这些?
How does one build all that ?
mike3< mi ****** @ yahoo.comwrote in message ...
mike3 <mi******@yahoo.comwrote in message...
>
digits = new DIGIT32 [length];
并且免费使用(in析构函数)
>
digits = new DIGIT32[length];
and free with (in destructor)
//删除数字;
删除[]位数;
如果你是'新',你''删除''。
如果你'新[]'',你''删除[]''。
-
Bob R
POVrookie
// delete digits;
delete [] digits;
If you ''new'', you ''delete''.
If you ''new[]'', you ''delete[]''.
--
Bob R
POVrookie
这篇关于我的C ++程序中的错误看起来很奇怪。 (调试进度更新)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!