17得票2回答
为什么C标准中没有"recalloc"函数?

大家都知道: realloc 重新分配一个已经存在的内存块或者将它复制到更大的内存块。 calloc 确保内存被清零,避免算术溢出,并且通常用于大型数组。 C标准为什么不提供一个像下面这样同时结合了这两者的函数呢?void *recalloc(void *ptr, size_t num...

17得票3回答
在C++中使用realloc

std::realloc在C++中存在风险,如果malloc的内存包含非pod类型。唯一的问题似乎是,如果无法原地扩展内存,std::realloc将不会调用类型解构函数。 一个微不足道的解决方法是一个try_realloc函数。如果无法在原地增长,则它不会malloc新内存,只需返回fal...

17得票4回答
realloc()在失败并返回NULL时的正确使用方法是什么?

有人能总结一下realloc()的正确用法吗? 如果realloc()失败了怎么办? 从我目前看到的情况来看,似乎如果realloc()失败了,你必须free()旧指针。是这样吗? 这里有一个例子: 1. char *ptr = malloc(sizeof(*ptr) * 50);...

17得票3回答
realloc(): 重新分配内存空间时出现无效的下一个大小,用于扩展 char * 中的 strcat。

以下代码导致了无效的内存错误:printf(" %s\n","FINE 5"); printf("%s LENGTH IS: %d\n","FINE 6",strlen(": ")); buffer = (char *)realloc(buffer, strlen(buffer)* sizeo...

16得票7回答
释放已分配内存:realloc() vs. free()

我使用malloc()分配了一块内存,然后用realloc()修改了它。 在代码的某个点上,我想要清空它,也就是说,将其内存大小设置为0。直觉上,这可以通过realloc(pointer, 0)来完成。但我在这里阅读到,这是由具体实现决定的,不应该使用。 那么我应该使用free()来释放内...

16得票4回答
realloc使用起来安全吗?

之前我的一个朋友告诉我不要使用 realloc ,因为它是不安全的,但他不能告诉我原因,所以我对这个问题进行了一些研究,最接近我的怀疑的参考资料是: 第一篇文章 第二篇文章 我想知道是否可以在我的代码中继续使用 realloc ,如果它不安全,是否有其他方法来重新分配内存?

15得票4回答
Git在checkout时内存不足

我克隆了一个大型的代码仓库,但在尝试多次后出现了一个错误。 克隆成功,但检出失败。 当我试图修复这个问题时,使用了以下命令:git checkout -f HEAD 出现了一个错误 致命错误: 内存不足, realloc 失败2 我已经将一些内存限制设置得更高,因为克隆...

14得票7回答
简单的C语言动态内存分配

虽然在C/C++中有很多不同的复杂实现方法来实现malloc / free,但我正在寻找一种非常简单并且(特别是)小型的实现方法,它可以在固定大小的缓冲区上运行,并支持realloc。线程安全等功能不需要,我的对象小而且大小变化不大。您能推荐任何实现吗? 编辑: 我将在接收器的通信缓冲区中...

14得票7回答
修剪时,realloc会失败(返回NULL)吗?

如果按照以下步骤进行:int* array = malloc(10 * sizeof(int)); 然后我使用realloc:array = realloc(array, 5 * sizeof(int)); 在第二行(且仅在第二行),它能返回NULL吗?

13得票5回答
如果没有连续的内存空间,realloc会怎么做?

realloc 用于动态重新分配内存。 假设我使用 malloc 函数分配了 7 个字节,现在我想将其扩展为 30 个字节。 如果内存中没有连续的 30 个字节的空间,后台会发生什么情况? 会出现错误还是内存会被分配成多个部分?