问题标签 [calloc]

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 投票
1 回答
2916 浏览

c - 为什么 calloc 无法在具有 4GB RAM 的系统上分配 1GB?

我需要calloc1 个超过 1 GB 的元素。此调用返回NULL,检查 errno 显示内存不足错误。但是,在测试期间,我有将近 4 GB 的空闲 RAM,更不用说可用的虚拟内存了。

在研究了这个问题之后,我唯一能想到的calloc失败原因是我没有足够的连续内存可用。但是,在我看来,如果我有 4Gb 可用内存,那么拥有 ~= 1Gb 连续内存应该很容易。有没有办法检查连续的内存可用性?如果这是问题所在,是否有一种直接的方法来“整理”内存?

或者这是否与分配内存的块大小有关,因此它实际上试图分配比我可用的内存更多的内存?我有哪些选择来确定失败的原因?成功分配这么多内存的选择是什么?

我在具有 12Gb 内存的本机 Windows 系统上。接下来我将尝试在 VM 中运行,并给 VM 几 GB 的内存,并检查虚拟机是否可以非透明地访问足够的连续内存。如果我今天完成,我会在这里发布结果。

0 投票
3 回答
391 浏览

c - calloc(): Do the individual values matter for performance?

I'm currently writing an embedded application in C where performance is critical.

Currently, I'm allocating lots of empty memory like this: calloc(1, num_bytes) - however, I simply calculate num_bytes as the product of a number of items and the size of each item earlier in the code as it's code that used to call malloc.

calloc seems unique in that it is the only memory allocation function of the -alloc family which takes two arguments for the size. Is there a good reason for doing this? Are there performance implications for specifying different arguments? What was the rationale in choosing this argument layout?

0 投票
2 回答
1213 浏览

c - free() 函数给出核心转储错误

我为合并排序编写了一个简单的代码,但它给了我这个错误:

这是代码:

我认为错误在于free(t)函数中的行merge。由于某种原因,该块没有以应有的方式释放。我怎样才能解决这个问题?

0 投票
2 回答
1670 浏览

c - 在C中的动态内存中对齐数组的开头

可能重复:
对齐的内存管理?

我有一个数组,我要这样声明

int 的大小是 4 个字节,但是我想确保我的数组从 8 个字节的边界开始 - 所以我每次可以有效地加载两个值。有什么不同的方法或我可以做的其他事情吗?

0 投票
1 回答
2408 浏览

c++ - Qt Creator - calloc 因内存大而失败

我对 Qt Creator 或其组件之一有疑问。

我有一个需要大量内存(大约 4 GB)的程序,我使用 calloc 来分配它。如果我使用 mingw/gcc(不使用 Qt 框架)编译 C 代码,它可以工作,但是如果我在 Qt Creator 中编译它(使用 C++ 将 C 代码嵌入到 Qt 框架中),使用 mingw/gcc 工具链, calloc 返回一个空指针。

我已经搜索并找到了 qt-pro 选项QMAKE_LFLAGS += -Wl,--large-address-aware,它适用于某些情况(大约 3.5GBytes),但如果我超过 4GBytes,它只适用于使用 gcc 编译的 C 代码,而不适用于 Qt。

使用 Qt Creator 编译时,如何使用 calloc 分配所需的内存量?

0 投票
2 回答
1258 浏览

ios - ARC 正在释放 calloc'ed 内存?

我的代码中发生了一些奇怪的事情。基本上我正在做网络流应用程序,将一些数据传输到 iOS 上的环形缓冲区内存中,然后读取内存。我正在获取EXC_BAD_ACCESS一些未确定数量的数据。所以我启用 NSZombieEnabledNSAutoreleaseFreedObjectCheckEnabled设置了malloc_error_break并且能够查明错误的原因。

MainClass有财产(也尝试过强参考,相同的行为)

@property (nonatomic, 保留) RingBuffer *readBuffer;

RingBuffer类中,我将缓冲区大小初始化为:

之后,我使用 push 方法在 ringbuffer 中插入数据

如果我删除推送调用,应用程序将不会崩溃。如果调用推送调用,它会在一段时间后崩溃。有时我得到alloc: *** error for object 0x1cad3404: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug......有时它只是 EXC_BAD_ACCESS。

基本上,我不明白为什么会导致这个问题?ARC是否有可能释放了被调用的内存?

0 投票
2 回答
812 浏览

c - 二维数组动态内存分配崩溃

可能重复:
如何在 C 中正确设置、访问和释放多维数组?

我正在尝试使用 calloc 为 2D 数组动态分配内存。列固定为 2,因此只有动态行。

这是我一直在尝试的:

但问题是,在访问数组时,程序崩溃了。我正在使用带有 MinGW GCC 的 Eclipse。

请让我知道是否需要在此处放置更多数据或告诉我如何处理此问题,因为这是我的第一篇文章。

0 投票
2 回答
1465 浏览

c - struct 中的灵活 mpz_t 数组

我有一个这样的结构:

好的,这是一个普通的灵活数组,我应该可以使用 malloc 来设置它的大小:

但是当我尝试使用它时,我遇到了分段错误。我还收到有关不正确使用 mpz_array_init 的投诉。但我看过manula,看来我做对了。

我也尝试像这样使用我的结构:

我也改变了我的initArray功能:

这个没有段错误,但我在编译时收到有关错误使用的投诉mpz_array_init,并且我的输出中也出现了一堆malloc错误,以及我想查看的输出。谁能告诉我我的代码在哪里不正确?为什么第一个版本会出现段错误?我按照人们似乎推荐的方式做了。为什么编译器会抱怨 mpz_array_init使用不正确?

这是我在输出中遇到的那种错误:

PS gmpascal是我的可执行文件的名称,它计算帕斯卡三角形的第 n 行。

我在带有这些标志gcc-4.2Powermac上编译的PPS :

我在这里想念什么吗?

0 投票
0 回答
158 浏览

r - 尝试使用 R 包中的 C 文件在独立的 C 程序中实现

我最近下载了这个 R 包(http://cran.r-project.org/web/packages/energy/index.html)并且能够成功地安装它并在我的系统上运行它并计算距离相关性。

问题是 R 中的循环需要永远,我是 R 新手。源代码实际上是写在 C 中的一些文件中,R 使用这些文件来评估。src我在包的文件夹中有这两个文件utilities.cdcov.c其中有我需要实现的功能。

我试图编译dcov.c哪些用途rmath.hr.h显然我得到了一堆关于程序中使用的 Calloc/Free 的错误。

知道如何编译 C 程序吗?

0 投票
0 回答
265 浏览

ios - ios 释放通过 calloc 分配的二维内存的正确方法

我有一个 iOS 应用程序。我分配 2d 内存,然后使用 free 函数解除分配。这是正确的释放方式吗?最近我遇到了指向自由声明的崩溃。我应该在循环中释放 buf[i] 吗?

这是错误消息