问题标签 [realloc]

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 投票
3 回答
2835 浏览

c - Realloc 与链表扫描

我必须从文件中读取未知数量的行并将它们保存到一个结构中(我想避免计算元素总数)。在阅读阶段之后,我必须对这些行的每个元素进行一些计算。

我想出了两种方法:

  1. realloc每次阅读一行时使用。这种方式分配阶段很慢,但由于索引访问,计算阶段更容易。

  2. 每次阅读一行时使用一个链表。这样分配阶段更快,但计算阶段更慢。

从复杂性的角度来看,什么更好?

0 投票
1 回答
4184 浏览

c - 函数内部的 C realloc

这是我的代码:

它给了我分段错误。然而,当我把这个循环:

mp3files功能结束时,它可以工作。当我mp3files从“。”更改函数的第三个参数时 到包含少于 4 个文件或目录的目录,它工作得很好。换句话说,当变量mp3FilesResult指向少于 4 个字符串时,它不会因分段错误而失败。

为什么它一直这样做?

在此先感谢并为我的英语感到抱歉。

0 投票
3 回答
265 浏览

c - VS 2010 中 realloc 的奇怪错误

我有一个代码:

在 BLOC_NOTE 的第三个元素上,程序在

VS说我操作系统Windows启动了一个断点......

怎么了?

编辑
将代码从评论移到这里

0 投票
4 回答
9829 浏览

c - memcpy() 是否使用 realloc()?

此代码打印整个字符串“abc...xyz”。但是“buff”没有足够的内存来保存该字符串。memcpy() 是如何工作的?它使用 realloc() 吗?

0 投票
2 回答
1240 浏览

c - 内存分配

如何为结构中的数字分配内存?

0 投票
2 回答
30935 浏览

c - 重新分配结构数组

我正在尝试为正在从文件读取/向文件读取或由用户输入的结构数组(实际上是 2 个结构中的每个数组,但为了简单起见,此处包含 1 个)动态重新分配内存。

...在主要()中:

然后,我尝试在需要时使用函数调用来增加数组:

不幸的是,realloc 永远不会起作用。两个结构每个实例只有大约 200 个字节,将初始大小设置为 10 可以正常工作,所以我尝试使用 realloc 的方式一定有问题。

系统是 Win 7 64,在具有 4GB 的 Core i5 上,运行 Quincy(MinGW GUI)。

0 投票
2 回答
1152 浏览

c - 在结构数组上使用 realloc

我一直在为此挠头好几个小时。这会将文本文件中的数据读取到结构中(每行有四个字符串,每行代表一个新学生)。我在 realloc 上遇到了段错误(接近尾声)。我怀疑我不了解指针如何与 malloc/realloc 交互。

是什么导致了这个段错误?

提前致谢,

格斯

0 投票
3 回答
1618 浏览

c - 为什么没有数据复制的标准 C 库中没有像 realloc() 这样的函数?

例如,我想要这样一个功能:

如您所见,我只希望函数 realloc() 扩展缓冲区的大小,但 C 库中的 realloc() 可能会从旧地址复制数据。那么任何库中是否有我想要的功能?

0 投票
7 回答
4367 浏览

c - C - 动态数组

我试图用 fscanf() 提供一个数组,同时循环一个包含整数列表的文件,n 个整数长。看来我需要使用 malloc 和/或可能的 realloc。我听说 malloc 命令需要大量的执行时间,最好过度分配。有人介意帮助我了解实现这一目标的基石吗?

免责声明:我是 C 的新手。

0 投票
1 回答
1233 浏览

c - 使用 realloc() 时的错误

我正在使用realloc()动态调整一些数组的大小。因为我写了很多这样的代码:

我想我会通过做这样的事情来缩短我的代码(愚蠢的想法):

这很愚蠢,因为它没有节省那么多行或使代码更具可读性,但我想知道为什么它不能按我期望的方式工作。当我GetSpace()仅将 用于单个对象时,它可以正常工作。如果我在没有初始化任何我调用函数的对象的情况下运行代码,它运行良好,但是当我调用GetSpace()一个对象,然后将数据放入其中,然后调用GetSpace()另一个对象时,我会得到一个堆栈跟踪,其中包含这样的消息

0x00007fff05d96790是调整大小之前的第二个数组/对象的地址。为什么会这样?