问题标签 [dynamic-memory-allocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
439 浏览

c++ - 如何为多态数据类型动态分配内存?

我有一个集合类,可以多态地保存和管理 Multinumber 类型的任何东西。这可以是 Pair、Rational 或 Complex 类型的对象。我遇到的问题是这个类需要动态内存管理,在很多情况下,比如下面的函数,我不知道要分配什么类型。由于该集合与类型无关,因此我不知道是否应该执行 Multinumber* var=new Complex、Rational 或 Pair。有什么方法可以检查我首先添加的类型,或者将此信息存储在另一种数据类型中而不会产生切片效果?我遇到此问题的一个功能是:

编辑:我说的是这是我唯一可以分配的地方的情况,例如当调用 operator+ 并且必须立即将对象发送到这里,而调用类不知道类型是什么时。它发生在我的代码中的 Set operator+ 重载中,因为我 Set 不知道它在存储什么。

0 投票
3 回答
219 浏览

c++ - 如何在此函数中分配内存?

我有以下函数和类层次结构,这样 Multinumber 由 Pairs、Rational 和 Complex 继承。所有这些共享功能在 Multinumber 中都是虚拟的。我的问题是以下代码。按照现在的编写方式,newElement 变量在添加到 my setArraywhich 的 type时超出范围Multinumber**,我需要想办法在这个函数中分配内存。奇怪的是,传递给函数的参数,即使打印在第一行,当我执行时总是空的cout<<newElement->tostring();谁能告诉我这里有什么问题?

编辑:是的,海报是正确的,这是家庭作业

0 投票
3 回答
1507 浏览

c++ - 即使有足够的内存可用,realloc/HeapRealloc 也会失败

我的机器有 8GB 的​​ RAM 并且正在运行 Windows Server 2008。当我的应用程序已经分配了 1.5~1.7GB 时,malloc/realloc()无法分配更多内存。我尝试改用HeapAlloc/HeapRealloc并发生同样的情况。

我在这里缺少什么吗?当有明显可用的 RAM 时,什么可能导致我的应用程序无法分配更多内存?

0 投票
2 回答
858 浏览

c++ - 为数组c ++重新分配内存

我正在查看C++参考并找到了动态内存管理并查看了重新分配内存的函数,我想知道这个函数是否可以用来使数组更大我认为这就是他们的意思,但我真的不明白这条线

这出现在 cplusplus 参考的示例中,所以简而言之,这是我的问题

可以realloc()用来使数组更大吗?谢谢 :)

0 投票
2 回答
1102 浏览

c++ - 在类中初始化动态内存数组

我是 C++ 编程新手,这可能是一个微不足道的问题,但我需要在一个类中构造一个可变大小的数组并将文本文件数据传输到其中,见下文。这里HISTORYFile >> ClusterCoord[i];似乎可以很好地接收信息,但是当我尝试通过以下方式访问主程序中的信息时,

我得到一个总线错误。如果可以的话请帮忙!

0 投票
4 回答
960 浏览

c - C Malloc 运行时错误

我有以下代码片段:

当我将它与我的其余代码集成时,它开始执行,然后继续弹道。

知道出了什么问题吗?我觉得这与我的malloc有关。

0 投票
3 回答
2072 浏览

java - 在java中填充未初始化的数组?(或解决方法!)

我目前正在为 opengles android 游戏创建 OBJ 导入器。我对 java 语言比较陌生,所以我对一些事情不太清楚。

我有一个数组,它将保存模型中的顶点数(以及其他一些数组):

问题是在使用给我的输入流读取文件之前,我不知道模型中有多少个顶点。

我可以根据需要填写吗?:

还是我必须事先初始化它?

如果是后者,那么找出文件中顶点数的好方法是什么?一旦我使用 inputstreamreader.read() 读取它,它就会转到下一行,直到它读取整个文件。我唯一能想到的就是读取整个文件,计算顶点数,然后再次读取它,填充新初始化的数组。

有没有办法根据需要动态分配数据?

0 投票
6 回答
4974 浏览

c++ - nothrow 还是异常?

我是一名学生,我对 C++ 知之甚少,我试图扩展这些知识。这更像是一个哲学问题..我不是要实施什么。

自从

将隐藏异常,并且由于处理异常比简单的更重if(t)new T()考虑到我们将不得不使用try-catch()检查简单分配是否成功(如果我们不成功,只是看着程序死)??

new与使用 a 相比,正常分配有什么好处(如果有的话)nothrow new?在这种情况下异常的开销是微不足道的吗?

此外,假设分配失败(例如,系统中不存在内存)。在那种情况下程序有什么可以做的,或者只是优雅地失败。没有办法在堆上找到空闲内存,当所有的都被保留时,有吗?

万一分配失败,并且 anstd::bad_allocthrown,我们如何假设由于没有足够的内存来分配对象(例如 a new int),所以会有足够的内存来存储异常?

谢谢你的时间。我希望这个问题符合规则。

0 投票
7 回答
1613 浏览

c - realloc() 没有赋值问题

我的一个同学给我发了一个代码,问它有什么问题。是这样的:

它应该从用户那里获取数字并保留主要的数字并最终打印出来。我电脑上的输出是这样的:

代码中还有其他内容,但最大的问题显然是没有分配 realloc() 的返回值。但奇怪的是,这是我的问题,为什么这段代码显示第一个质数错误而其他正确?动态数组的地址可能会改变,但为什么第二个和其余的都是正确的而不是第一个呢?

编辑:好的,我问这个的原因是试图理解 realloc() 在这段代码中的行为,如果你有好的资源请分享。重新分配内存时(释放旧内存时), realloc() 是否会更改旧内存位置的内容?

0 投票
3 回答
231 浏览

c - 如何使用 C 在同一函数中获取不同类型的大小?

我正在编写一个函数来增加使用 malloc 创建的动态内存对象的大小。该函数应该作为参数接受一个指向要增加的内存块的指针、块的当前大小以及要增加的块的数量。

像这样的东西:

问题是无论 pnt 指向什么,我都希望该功能正常工作。我该如何做到这一点?