问题标签 [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.

0 投票
5 回答
1415 浏览

c - 编写返回 char 数组的 C 函数的正确方法是什么?

我对Java很熟悉,在C中不是这样。

在Java中,如果我有一个方法可以做某事并返回一个字符串,它看起来像:

C 中的等效句法不起作用,而且是完全错误的:

我当然可以:

这会起作用(我认为!)但我很少看到代码这样做(是因为它不必要地填充了堆?)

最常见的是,我看到:

调用语句将是:

如果在函数本身内部之前我不知道 char 数组的大小怎么办?即我将无法在函数外部声明 char 数组,然后将其传入。

处理这种情况的正确方法是什么?

0 投票
8 回答
3081 浏览

c++ - 在 C++ 中动态更改指针的大小

我有以下结构

然后我想将大小重新调整m_DeviceInfo 为 6,并希望保留前 4 个值。

如何在 C++ 中做到这一点?

0 投票
1 回答
270 浏览

c - 为什么我在这里得到一个 SIGABRT(动态分配)?

也许有人可以帮助我。在我的项目中,我使用的是动态分配的链表。而且我不知道为什么,但是它不起作用:(

当我试图编译它时,我只是看到

中止

也许有人能告诉我为什么我有这个麻烦?谢谢 :)

0 投票
3 回答
1250 浏览

c++ - c++中的对象声明和定义

可能重复:
类型名称后的括号是否与 new 不同?

我看到有人使用这样的构造函数:

Foo *f= new Foo;和有什么区别Foo *f= new Foo();

0 投票
3 回答
1909 浏览

c++ - 如何通过标准库仅引用二维数组来使用动态创建的一维数组?

如何仅通过标准库引用二维数组来动态创建一维数组?</p>

可以通过构造重载来完成operator []吗?

示例:我想通过创建一个一维数组来形成一个矩阵,然后以使用二维数组的形式使用它。

我想过使用运算符重载operator []和变量测试来证明“[]”是否第一次出现,但上面的结果是

错误:“double[int]数组下标的类型无效”

有可能这样做吗?

0 投票
5 回答
4067 浏览

c++ - 需要删除静态向量吗?

我一直在学习 c++,但我对向量感到有些困惑。具体来说,如果静态向量在内部实现了一个动态数组,那么当程序结束时,该动态数组正在使用的堆栈内存是否会被释放,或者我应该使用删除操作还是在静态向量上调用析构函数?

0 投票
1 回答
106 浏览

c++ - 在调用删除之前动态分配的对象被删除?

我正在尝试实现一个插件系统,但我遇到了一些问题。在插件 DLL 中,我有这样的代码:

MyPluginObject派生自纯虚拟 PluginObject 类。在PluginManager::RegisterPlugin()中,指向插件对象的指针被存储以供以后使用。MyPluginObject我可以从内部成功调用一个函数RegisterPlugin(),但是一旦InitPlugin返回,每当我尝试使用存储在RegisterPlugin(). 我该如何解决?

0 投票
2 回答
1318 浏览

c++ - (Visual C++) 删除指针后动态分配内存不是有效指针

我有一个程序,当我单击“下载”按钮时,程序会创建一个新线程来下载网页并将其存储在动态分配char*变量中。

但现在我点击“下载”,程序显示以下信息:

似乎问题与堆分配或释放问题有关。

download功能 :

0 投票
1 回答
652 浏览

c++ - C++中内存池的一个探究

是否可以创建一个遵循简单逻辑的内存池实现:

1 - 分配 n 字节的内存池。

2 - 使用修改后的 new(); 不分配内存的函数/操作符只获得一个指向内存池开头的指针。这种方式对象是动态创建的,没有开销。

3 - 当内存池不足时,它会释放剩余的内存并分配一个新的内存池

4 - 在第一个内存池中创建的对象将根据它们的大小来获取内存。在第一个池中分配的内容与在其不足时归还的内容之间的差异由对象在删除时恢复。

我的担心主要是因为我不知道如何删除小于分配的内存池,请记住,除了内存池对象末尾的内容之外,内存池还有一个 OS 标头那是在池中分配的第一个对象之前。我需要什么方法来确保没有内存泄漏,删除多余的内存池不会删除在其中分配的对象,并且安全地删除了内存池片段的标头。

谢谢!

编辑:请注意,目的是让内存池分配内存并由对象释放,这些对象可能具有不同的生命周期。如果这是可能的...

0 投票
4 回答
697 浏览

c++ - C++中的全局动态分配结构

我在尝试使用没有初始大小的结构数组时遇到问题。我该怎么做呢?这是我的结构:

在我的程序中,我正在分配结构数组的大小,如下所示:

问题是我如何在其他文件中使用这个结构。我创建了一个头文件并将其放入其中

但它出现了这个错误:

我知道我不应该使用全局变量,但我只想先测试一下。在此先感谢您的帮助。