问题标签 [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.
c - 为什么 calloc 无法在具有 4GB RAM 的系统上分配 1GB?
我需要calloc
1 个超过 1 GB 的元素。此调用返回NULL
,检查 errno 显示内存不足错误。但是,在测试期间,我有将近 4 GB 的空闲 RAM,更不用说可用的虚拟内存了。
在研究了这个问题之后,我唯一能想到的calloc
失败原因是我没有足够的连续内存可用。但是,在我看来,如果我有 4Gb 可用内存,那么拥有 ~= 1Gb 连续内存应该很容易。有没有办法检查连续的内存可用性?如果这是问题所在,是否有一种直接的方法来“整理”内存?
或者这是否与分配内存的块大小有关,因此它实际上试图分配比我可用的内存更多的内存?我有哪些选择来确定失败的原因?成功分配这么多内存的选择是什么?
我在具有 12Gb 内存的本机 Windows 系统上。接下来我将尝试在 VM 中运行,并给 VM 几 GB 的内存,并检查虚拟机是否可以非透明地访问足够的连续内存。如果我今天完成,我会在这里发布结果。
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?
c - free() 函数给出核心转储错误
我为合并排序编写了一个简单的代码,但它给了我这个错误:
这是代码:
我认为错误在于free(t)
函数中的行merge
。由于某种原因,该块没有以应有的方式释放。我怎样才能解决这个问题?
c - 在C中的动态内存中对齐数组的开头
可能重复:
对齐的内存管理?
我有一个数组,我要这样声明
int 的大小是 4 个字节,但是我想确保我的数组从 8 个字节的边界开始 - 所以我每次可以有效地加载两个值。有什么不同的方法或我可以做的其他事情吗?
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 分配所需的内存量?
ios - ARC 正在释放 calloc'ed 内存?
我的代码中发生了一些奇怪的事情。基本上我正在做网络流应用程序,将一些数据传输到 iOS 上的环形缓冲区内存中,然后读取内存。我正在获取EXC_BAD_ACCESS
一些未确定数量的数据。所以我启用 NSZombieEnabled
并NSAutoreleaseFreedObjectCheckEnabled
设置了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是否有可能释放了被调用的内存?
c - 二维数组动态内存分配崩溃
可能重复:
如何在 C 中正确设置、访问和释放多维数组?
我正在尝试使用 calloc 为 2D 数组动态分配内存。列固定为 2,因此只有动态行。
这是我一直在尝试的:
但问题是,在访问数组时,程序崩溃了。我正在使用带有 MinGW GCC 的 Eclipse。
请让我知道是否需要在此处放置更多数据或告诉我如何处理此问题,因为这是我的第一篇文章。
c - struct 中的灵活 mpz_t 数组
我有一个这样的结构:
好的,这是一个普通的灵活数组,我应该可以使用 malloc 来设置它的大小:
但是当我尝试使用它时,我遇到了分段错误。我还收到有关不正确使用 mpz_array_init 的投诉。但我看过manula,看来我做对了。
我也尝试像这样使用我的结构:
我也改变了我的initArray
功能:
这个没有段错误,但我在编译时收到有关错误使用的投诉mpz_array_init
,并且我的输出中也出现了一堆malloc
错误,以及我想查看的输出。谁能告诉我我的代码在哪里不正确?为什么第一个版本会出现段错误?我按照人们似乎推荐的方式做了。为什么编译器会抱怨
mpz_array_init
使用不正确?
这是我在输出中遇到的那种错误:
PS gmpascal
是我的可执行文件的名称,它计算帕斯卡三角形的第 n 行。
我在带有这些标志gcc-4.2
的Powermac上编译的PPS :
我在这里想念什么吗?
r - 尝试使用 R 包中的 C 文件在独立的 C 程序中实现
我最近下载了这个 R 包(http://cran.r-project.org/web/packages/energy/index.html)并且能够成功地安装它并在我的系统上运行它并计算距离相关性。
问题是 R 中的循环需要永远,我是 R 新手。源代码实际上是写在 C 中的一些文件中,R 使用这些文件来评估。src
我在包的文件夹中有这两个文件utilities.c
,dcov.c
其中有我需要实现的功能。
我试图编译dcov.c
哪些用途rmath.h
,r.h
显然我得到了一堆关于程序中使用的 Calloc/Free 的错误。
知道如何编译 C 程序吗?
ios - ios 释放通过 calloc 分配的二维内存的正确方法
我有一个 iOS 应用程序。我分配 2d 内存,然后使用 free 函数解除分配。这是正确的释放方式吗?最近我遇到了指向自由声明的崩溃。我应该在循环中释放 buf[i] 吗?
这是错误消息