问题标签 [dynamic-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.
exception - 资源获取失败处理
经过多年的编程,我还没有遇到过合理的 malloc 或 new 会失败的情况(可能是因为我的 malloc 真的很合理),尽管我总是检查它。
就我而言,应用程序应该(我希望)通过适当的日志条目优雅地关闭。在这种情况下你会怎么做?听到你的方法很有趣——你是等待资源还是关闭商店?
c++ - C++ 为什么当我创建一个包含链表的类的对象时,我的链表模板类会失败?
我写了这个 LinkedList 模板类,它还没有完成——我还没有添加安全特性和更多方法。到目前为止,它可以满足我的需要。但它在某些情况下会失败,我不知道为什么。
我在问题中陈述了我的问题,这是一个例子:
我不知道为什么它运行不正确。
c - 释放动态分配的二维结构
我已经动态分配了一个结构,在概念上与矩阵非常相似,以保存一组字符串。我在尝试释放内存时遇到了问题。我的代码如下所示:
所以该结构实际上包含 2 个数组,一个是指向字符串的指针,另一个包含一个接一个对齐的字符串,由一个终止符 \0 分隔。
代码运行良好,最后的 for 循环也运行良好。第一次调用 free 也有效。问题是最后一次调用 free 失败。尽管尝试搜索有关该问题的所有可能数据,但我发现的所有示例都考虑了保存字符串的第二个数组在 for 循环中逐步分配,然后也在 for 循环中释放的情况.
我想避免在循环中使用动态分配,因此我的代码看起来不同。
有谁知道问题是什么?
==================================================== =====================================
非常感谢所有回答我的人。最终,这个错误被解决了。问题是 dataPointersArray 在其他一些代码中填充了超过 SIZE 的元素,乍一看似乎很无辜,实际上导致免费调用失败。
再次感谢您的评论!沙查尔
c - 堆栈和堆中的内存分配
这似乎是一个非常基本的问题,但它一直在我的脑海中:
当我们分配一个局部变量时,它会进入堆栈。类似地,动态分配会导致变量进入堆。现在,我的问题是,这个变量实际上是位于堆栈还是堆上,或者我们只是堆栈和堆中的一个引用。
例如,
假设我声明了一个变量int i
。现在这i
是在堆栈上分配的。那么,当我打印 的地址时i
,这将是堆栈上的位置之一吗?堆也是同样的问题。
c - 在 C 中的函数内声明全局变量(数组)
我需要在 C 中声明一个全局二维数组。
数组的大小由给定图片的宽度和高度决定。
所以我首先要加载图片,然后才创建数组。但是如果我想让一个变量(在这种情况下,我的数组)是全局的,我必须在文件的顶部而不是在函数内声明它。
那么,当我在 main() 函数执行后才知道数组的大小时,如何将数组声明为全局数组呢?
编辑:(我也尝试过其他解决方案,所以这个评论指的是所有这些)@Mimisbrunnr 首先,感谢您的快速回复!
我试过了,但我看不到让它工作。我可能错过了一些愚蠢的东西,但是“数组”如何成为全球性的?它在 test() 上说“数组”未声明
c - Calloc 导致分段错误
这是我的代码:
目的是将 2 位数字分配给 (char *)。当我运行代码时,出现分段错误。valgrind 的输出是-
c++ - C++中对象的动态内存分配
我正在尝试为一个非常简单的 C++ 程序中的对象动态分配内存(它不像现在那样动态,但最终会如此) 。我是新手,最近才开始玩 C++,把 C 抛在了后面。这是代码:
我的很多困惑实际上都包含在代码本身的注释中。我基本上试图有一个数组c,其中数组的每个元素都是它自己的对象。
我得到的代码的行为在评论中描述。
dynamic-allocation - 如何使用 calloc 动态分配结构及其 TCHAR 成员数组?
我可以在堆栈上设置一个足够简单的结构:
但这使用了太多的堆栈空间。
相反,我想把它全部放在堆上,所以我想出了这个:
如何为 sName 动态分配内存?我试过了,它没有编译:
我真的在这里忽略了一些东西。有人可以帮忙吗?谢谢。
c++ - 只允许使用动态分配来分配对象
我正在研究一个小型图书馆,我对任何一个都有以下要求class X
:
class X
必须只能使用operator new
- 的所有孩子都
class X
应该隐式地变得可分配operator new
- 堆分配的语法应该很优雅
- 不应更改太多现有代码以包含此
- 一段时间后,如果我想允许
class X
自动分配;再次不需要更改太多代码
我也欢迎 C++0x 解决方案(仅供将来使用)。
[注意:我已经完成了我的部分研究,并将其作为答案发布(针对基本场景进行了测试)]
c++ - new 和 new[1] 有什么区别?
new
和有什么区别new[1]
?我可以使用delete
吗new[1]
?
编辑
好吧好吧,我应该提供背景,抱歉。我正在使用 VS 2010 评估 BoundsChecker,当我在 new[1] 上使用 delete[] 时,它抱怨内存泄漏。所以理论上我知道应该如何使用 new 和 delete 对,但是这种特殊情况让我对引擎盖下的事情感到困惑。知道发生了什么吗?