问题标签 [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.
c++ - 如何在不进行动态内存分配的情况下将类的更多对象添加到向量中?
~
我想向AClass
vector添加新对象m_Objects
。
有没有其他方法可以在不进行动态内存分配的情况下做到这一点?
c - 对数组使用动态内存分配
我应该如何为数组使用动态内存分配?
例如,这里是以下数组,我从 .txt 文件中读取单个单词并将它们逐字保存在数组中:
代码:
这里 1000 定义了数组可以保存的单词数,每个单词可以包含不超过 15 个字符。
现在我希望该程序应该为它计算的字数动态分配内存。例如,一个 .txt 文件可能包含大于 1000 的单词。现在我希望程序应该计算单词的数量并相应地分配内存。
由于我们不能使用变量来代替 [1000],因此我对如何实现我的逻辑一无所知。请在这方面帮助我。
memory-management - CUDA 在 __device__ 函数中分配内存
CUDA 有没有办法在设备端函数中动态分配内存?我找不到任何这样做的例子。
从 CUDA C 编程手册:
B.15 动态全局内存分配
从全局内存中的固定大小的堆中动态分配和释放内存。
CUDA 内核
malloc()
函数从设备堆中分配至少 size 个字节,并返回一个指向已分配内存的指针,如果没有足够的内存来满足请求,则返回 NULL。返回的指针保证与 16 字节边界对齐。CUDA 内核
free()
函数释放 指向的内存ptr
,该内存必须由先前的调用返回malloc()
。如果ptr
是NULL
,则忽略对 free() 的调用。使用相同的 ptr 重复调用 free() 具有未定义的行为。给定 CUDA 线程通过分配的内存
malloc()
在 CUDA 上下文的生命周期内保持分配,或者直到它通过调用显式释放free()
。它可以被任何其他 CUDA 线程使用,即使在随后的内核启动时也是如此。任何 CUDA 线程都可以释放由另一个线程分配的内存,但应注意确保不会多次释放同一指针。
c++ - 动态功能记忆?C++
我一直在阅读一些书籍,当谈到使用指针/动态内存(或堆或他们称之为的 w/e)的类/函数时,我开始感到困惑。
有没有人有一个简单的....像他们可以展示的简单示例,因为我使用的书籍使用了过于复杂的示例(大型类或多个函数),并且很难理解。无论如何,指针一直是我的弱点,但我理解 BASIC 指针,只是使用它们的类/函数有点令人困惑。
另外......你什么时候使用它们是另一个问题。
c# - 新的永不失败?
在 C++ 中,我们通常会看到和编写如下代码,
但是在 C# 中,我很少看到这个:(至少我从未见过这个)
意味着,在 C# 中,我们很少检查是否new
失败。为什么会这样?它与“在 C# 中,new 永远不会失败”有关吗?C#中是否有这样的事情new
永远不会失败?
如果它失败了,那么为什么这种“检查”在 C# 中如此罕见?我不是在谈论OutOfMemoryException
,毕竟是例外,而不是“检查”。我说的是编码风格。
c - 在 C 中使用动态分配将文件读入多维数组
如何从具有如下结构的文件中读取数据到 C 中的多维整数数组中?
文件:
我需要使用动态分配将它放在“int** 矩阵”变量中。
更新:
我想要一个示例代码,我可以查看并研究下面列出的功能之间的关系:
- 多维数组及其与指针的关系;
- 内存的动态分配及其使用的一些解释;
- 如何处理来自我们不知道大小的外部源的数据,如何将行/列分隔到 C 程序内部的数组中。
共享代码:
谢谢你。
c++ - C++ - 动态内存分配所需的内存
如果我想动态地为一个int
对象分配内存,我可以这样做:
int *x = new int;
在这种情况下,我知道堆4-bytes
为int
对象保留了内存。
但是,如果我有一个user-defined
类(类型)并想动态分配内存,如下所示:
Car *c = new Car;
如何知道在堆上为Car
对象保留所需的内存量?
谢谢。
c++ - 动态内存分配“删除”
如果我为对象动态分配内存位置,int
如下所示:
int *x = new int;
完成后,想要释放堆上的内存,我将执行以下操作:
delete x;
现在,如果我没有执行以下操作:
x = NULL;
会x
指向另一个地址吗?更新: another
而不是many
说我没有做x = NULL
,又做了一个 delete x;
,会发生什么?
c++ - C++ - 使用“new”在堆上分配内存
如果我有以下陈述:
int *x = new int;
在这种情况下,我在堆上动态分配了内存。换句话说,我现在有了一个对象的reserved
内存地址int
。
在那之后说我做了以下事情:
delete x;
这意味着我freed up
在堆上的内存地址。
说之后我又做了以下事情:
int *x = new int;
会x
指向它在被删除之前指向堆的同一个旧内存地址吗?
如果我以前这样做会怎样delete
:
x = NULL;
然后这样做:
int *x = new int;
将x
指向堆上的内存地址而不是旧地址吗?
谢谢。
c++ - 不使用动态内存分配的 Pimpl 习惯用法
我们想在项目的某些部分使用 pimpl idiom。项目的这些部分也恰好是禁止动态内存分配的部分,这个决定不在我们的控制范围内。
所以我要问的是,有没有一种干净而好的方法来实现 pimpl idiom 而无需动态内存分配?
编辑
这里有一些其他限制:嵌入式平台,标准 C++98,没有外部库,没有模板。