问题标签 [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.
c - gdb 报错,但程序运行正常
我有一个简单的 C 程序,它有一个指向字符数组的指针。为了启动它,我使用malloc
, 并调整大小,然后在程序中设置它 x 次。
当我使用 调整大小一次时realloc
,gdb不会显示任何错误,但是,如果我再次尝试调用 resize 函数,gdb会显示以下错误:
任何想法为什么不止一次调整它会产生这个错误?
编辑
我玩弄了它,当我注释掉指针数据的设置时,似乎没有发生错误,这是在调整大小之后。
c++ - 我应该为 memcpy 和 realloc 包含什么标题?
我正在将一个项目移植到 iPhone 上,它使用realloc
但memcpy
没有找到。要包含的标题是什么?
这是一个混合了 Objective C 和 C++ 的项目,我开始迷路了。
在此先感谢您的帮助!
c - 如何在C中读取无限个字符
如何在char*
不指定大小的情况下将无限字符读入变量?
例如,假设我想读取可能也需要多行的员工的地址。
c - 我是否应该强制重新分配检查新块大小是否小于初始块?
在这种情况下 realloc 会失败吗?
}
在我的情况下的输出是:
所以'a'指向同一个地址。那么我应该强制执行 realloc 检查吗?
稍后编辑:
- 在 Windows XP 下使用 MinGW 编译器。
- Linux 上的行为是否与 gcc 相似?
稍后编辑2:这样检查可以吗?
c - 如果我重新分配并且新大小为 0,会发生什么情况。这是否等同于免费?
给定以下代码:
它返回:
这个 realloc 是否等同于 free ?
注意:我在 WindowsXP 下使用 MinGW。
c - realloc() 为 recv() 中使用的缓冲区分配内存
我需要从套接字接收 recv() 数据并将其存储到缓冲区中,但我需要确保获取所有数据,以便循环使用。因此,为了确保缓冲区中的空间不会用完,我尝试使用 realloc 来调整分配给缓冲区的内存大小。到目前为止,我有:
但是,这似乎无法正常工作,因为 Valgrind 抱怨“valgrind:‘不可能’发生了:”。关于如何正确完成此操作的任何建议?
谢谢, 赫里斯托
更新...我意识到我使用 realloc 不正确。这是一个修订版:
然而,valgrind 仍然在抱怨:
memory-management - realloc 在分配小(<500Kb)数据块时返回 NULL;有足够的记忆
你好!
简短的问题是:可能是什么问题?
我的程序的整体内存使用情况(由任务管理器显示)在它运行的所有时间(近 40 分钟)几乎相同,并且我有近 2G 的可用内存。
在win2003r2上运行。
内存分配/释放足够高 - 我需要与其他软件交互,为它准备数据并在它过时时删除它。数据块的数量不是恒定的。
谢谢!
c++ - C ++强制重新分配导致内存泄漏
我正在使用我在这里找到的一个函数通过 cURL 将网页保存到内存中:
并找到该行:
导致每次调用几百字节的内存泄漏。我对原始来源所做的唯一真正改变是将有问题的行转换为(char *),我的编译器(gcc,g++,特别是如果它是 ac/c++ 问题,但 gcc 也不会用 uncast 编译)声明)坚持,但我认为这是泄漏的根源。谁能解释一下?
谢谢
c - 重新分配时从 lua 调用 c 崩溃
我在那个 for 循环中遇到了一个疯狂的错误
matr 是一个多维数组:int **matr. 我需要调整列和行的大小。第一行调整列的大小,for 循环调整每一行的大小。它在 c 中运行良好。现在我正在为 lua 开发一个库,它在这里崩溃了。编译也可以正常工作。但是从lua调用会崩溃
我不知道,因为它在c中使用它工作正常。
c++ - 奇怪的重新分配行为
我正在开发一个数组结构只是为了好玩。这种结构,由模板参数概括,在启动时预先分配给定数量的项目,然后,如果“忙碌”项目多于可用项目,函数将重新分配内部缓冲区。测试代码是:
正如你所看到的,我在开始时预先分配了 100 个整数指针,然后我一次重新分配了 10 个指针。在主函数中,我执行一个 for 循环来检查项目的完整性,如果一个数组项目不符合我的预期,我会打印它的值并且......你知道吗?我有以下消息:
!!!11 != 135121
事实上,索引 11 处的项目,应该是 '11',是 135121 !!!:S
如果我的代码不正确,你能告诉我吗?
谢谢
注意 我完全知道以这种方式混合 C 和 C++ 是丑陋的,而且我也知道如果使用这种结构会搞砸,例如:
这只是对 int 指针的测试。