14得票8回答
使用动态内存分配来创建数组

我应该如何使用动态内存分配来创建数组? 例如,下面是一个从.txt文件中逐个读取单词并将它们逐个保存到数组中的示例代码: 代码:char words[1000][15]; 这里的1000定义了数组可以保存的单词数量,每个单词的长度不超过15个字符。 现在我希望程序能够动态分配内存以适应它...

14得票2回答
在 "new int[5]{};" 中,"{}" 的作用是什么?

如果我们像这样写:int *arr = new int[5]; 在这种情况下,系统会动态为5个int类型的元素分配空间,并返回序列的第一个元素的指针。但是,当我看到以下代码时:int *arr = new int[5]{}; 那么,在new运算符后面的{}是什么意思?在这段代码中,{}的目的是...

13得票11回答
存储大量数据的数据结构是什么?

在我的应用程序中,我需要从一组图像(MRC 图像)加载体数据并将像素数据保存在内存中。(图像是灰阶的,因此每个像素一个字节)。 我的开发环境是 QT 框架、MinGW(用于 Windows)和 GCC(用于 Linux)。 目前,我使用简单的数据结构来存储体数据:unsigned char...

13得票3回答
嵌入式系统中使用STL且内存非常有限的问题

我目前正在构建一个嵌入式系统,使用 ARM Cortex M3 处理器和 64 KB SRAM。目前,我正在寻找一种方法来确保 STL 容器的确定性能,其中包括确保在运行时不会耗尽内存。 我主要关注 STL 容器如何执行动态内存分配。虽然我可以使用自定义分配器使这些结构从我设置的池中获取内存...

13得票5回答
如果没有连续的内存空间,realloc会怎么做?

realloc 用于动态重新分配内存。 假设我使用 malloc 函数分配了 7 个字节,现在我想将其扩展为 30 个字节。 如果内存中没有连续的 30 个字节的空间,后台会发生什么情况? 会出现错误还是内存会被分配成多个部分?

13得票3回答
如何在C语言中声明一个大小可变的二维数组?

我有一个项目的问题。我需要创建一个变量大小的二维数组来存储一些预测误差...这与图像有关。问题是我需要加载不同尺寸的图像,因此对于每个图像,我都需要从文件中获取相应数量像素的二维数组..我已经搜索了你们的问题,但这不是我想要的。有人可以帮帮我吗? 谢谢

13得票1回答
可分配数组还是指针数组?

我正在编写一段Fortran代码,犹豫是否使用可分配数组或指针数组。我在某个地方读到,可分配数组比指针数组具有显着优势: 1)更有效率,因为它们始终在内存中是连续的 2)不可能出现内存泄漏 有人能否确认这一点?你会建议使用哪一个?在这两种选择之间,执行代码的执行速度结果如何?

12得票4回答
2D和3D数组的动态分配/释放

我知道如何动态分配/释放二维数组的算法,但对于三维数组我不是很确定。 利用这些知识和一些对称性, 我想出了以下代码。 (编码时我在3D中很难形象化思考)。 请评论我的代码是否正确,并提出更好的替代方案(在效率或直观上),如果有的话。 此外,我认为这两个2D和3D数组可以像静态数组一样正常访...

12得票5回答
你能在堆上声明一个指针吗?

这是在C++中在堆上创建变量的方法: T *ptr = new T; ptr是指向新T的指针,显然。我的问题是,你能这样做吗: T *ptr = new T*; 这似乎会导致一些非常危险的代码。有没有人知道这是否可行/如何正确使用它?

12得票7回答
简单的C实现用于跟踪内存的malloc/free?

编程语言:C 平台:ARM 编译器:ADS 1.2 我需要跟踪项目中简单的melloc/free调用。我只需要获取一个很基本的概念,即当程序分配了所有资源时需要多少堆内存。因此,我提供了malloc/free调用的包装器。在这些包装器中,当调用malloc时,我需要增加当前内存计数,并在调用...