问题标签 [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 投票
2 回答
289 浏览

c++ - C++ 字符串 char** 翻译

如何使用 char** 创建一个包含 n 个字符串的数组?

是这样吗?如果是这样,我如何访问元素?假设我的数组将包含以下元素:aaab、abba、baab;

我想要这个结构:

没关系我如何声明它们?

0 投票
3 回答
4318 浏览

objective-c - 在 Objective-C 中初始化结构数组

我已经阅读了一段时间,但我不确定我是否找到了一个好的答案。

我正在尝试设置一个由 92 个结构组成的数组。它是固定长度,不会改变,因为它实际上是一个查找表。我认为最好的方法是先分配内存,calloc然后加载数据。

但是经过一些阅读,我看到很多人直接分配内存而没有callocmalloc像这样

我的第一个问题是动态分配内存是否更好?我的理解是这是一个更好的解决方案。特别是如果数据不一定会一直被使用。

我的第二个问题是关于初始化数据。我读过我可以使用初始化结构,... = {....};但编译器不接受。

这是我到目前为止的代码:

0 投票
1 回答
2494 浏览

c - C 动态内存分配 - 从文件中读取数据

我正在从 MATLAB 复制 load() 函数以用于 C 应用程序。我无法动态加载数据和初始化我需要的数组。更具体地说,我正在尝试将 fgets 与已使用 calloc 初始化的数组一起使用,但我无法使其正常工作。该功能如下,感谢您的帮助。

编辑:更新的代码低于以下有缺陷的示例。

修改后的代码:此解决方案适用于任何遇到类似问题的人。

0 投票
1 回答
1573 浏览

c - 为链表节点中的字符串动态分配内存

我正在使用 Visual Studio 2010,我知道它有一些特性。我希望不是这样。

这显然是一个更大程序的一部分,但我试图简化它,以便弄清楚我在做什么。

每次我运行它时,calloc 分配都会解析为 NULL,然后我退出程序。我在没有围绕 calloc 的 if 语句的情况下尝试了它,并得到了一个调试错误,所以我很确定这是 calloc 的问题。

任何帮助,将不胜感激。

0 投票
2 回答
1394 浏览

c - MPI、calloc 和 free:

我正在尝试学习 C 和 MPI,该程序计算 n 个浮点数的总和。但我有一个错误:

/home/xx/PRIMO/primo.exe:free():下一个大小无效(快速):0x000000000109bda0 /home/xx/PRIMO/primo.exe:free():下一个大小无效(快速):0x00000000024fada0

是2天,我不知道该转向哪个方向。这里的程序:

0 投票
2 回答
5870 浏览

c - calloc 和 malloc 后跟 memset 有什么区别?

可能重复:
c malloc 和 calloc 之间的区别
为什么 malloc+memset 比 calloc 慢?

calloc 和 malloc 后跟 memset 有什么区别?如果我用 malloc 后跟 memset 替换对 calloc 的所有调用,它会一样吗?

如果是这样,那为什么要分别提供两个函数 malloc 和 calloc 呢?

0 投票
1 回答
4348 浏览

c - 用于 CFD 求解器 Fluent 的 UDF(C 代码)编写器的段违规问题

用户定义函数 (UDF) 是可以编程的函数,并且可以与 CFD 软件 Fluent Solver 一起动态加载以增强标准功能。UDF 是用 C 编程语言编写的。

以下是我的 UDF 的一部分:

我对在 Windows 32 位中使用 VC++ 编译上述代码没有任何问题。但在 Windows 64 位和 Linux 32/64 位(使用 GCC)中。我收到以下错误:

你们中的任何人都可以帮我解决这个问题吗?

0 投票
2 回答
2411 浏览

c - 带有calloc的C段错误

这两行给了我一个段错误,我无法弄清楚:

而已。我理解这一点的方式是,请求等于 5 个整数的内存并返回内存地址。将内存地址存储在输入指向的值中。我错过了什么?

0 投票
2 回答
6579 浏览

c - 分配二维字符数组 malloc 或 calloc

我最近决定复习我的 C 知识(我只剩下一点点)。我很快意识到,第一个变得模糊的技能是内存管理。该死的。

我决定最好的办法是写一些毫无意义的指针练习。第一个是分配一个由 4 个字符数组组成的数组,每个字符数组的长度都是可变的。

该代码的简化版本:

我觉得这很笨拙,而且违反直觉。今天我想起了我的宿敌:calloc. 然后我写了

并在循环中:

我找到了这样写最后一行的代码示例:

问题1:有什么区别,如果有的话?

问题2:难道没有另一种分配字符串数组的方法吗?我现在看到代码的方式,感觉/看起来我首先将 4 个指针分配给单个 char 指针,然后分配每个指针所需的实际大小。只是感觉不对。

再说一次,我可能对所有这一切都错了,在这种情况下:随意将我的头撞在墙上,并指出我应该阅读一本体面的手册的方向,然后再浪费你所有的时间......

0 投票
4 回答
3462 浏览

c - Malloc, Calloc 测试我的记忆极限

我正在尝试编写 ac 程序来测试我的系统上有多少内存。我打算在各种不同的条件下运行它:

  1. 启用交换
  2. 禁用交换并且过度使用 (/proc/sys/vm/overcommit_memory) 设置为 false
  3. 禁用交换并且过度使用 (/proc/sys/vm/overcommit_memory) 设置为 true
  4. 在系统上运行的虚拟机内部

我这样做是为了更多地了解内存分配在系统真实和虚拟内存的限制下如何表现。

我在具有 4GB RAM 和 8GB Swap 的机器上运行它。

我目前拥有的是这样的:

我希望这将继续分配 40mb 的块(sizeof(int) 在我的系统上为 4)。Calloc 会将内存初始化为零。当没有更多可用内存时,它将终止程序并释放内存。

当我运行它时,它会继续超出我的记忆范围。它最终在打印以下行时死了:“尝试分配 5707960 MBytes。” (表示将近 6000 GB 的内存。)

任何人都可以弄清楚我要去哪里错了。

感谢@Blank Xavier 指出以这种方式分配时应考虑页面文件大小。

我修改了代码如下:

现在它轰炸了打印:

“尝试分配 11800 MB”

这就是我对 4GB Ram 和 8GB 交换的期望。顺便说一句,它在 4GB 之后打印速度要慢得多,因为它正在交换到磁盘。