malloc相关内容

当我尝试释放(void*key)时检测到堆损坏

在程序结束时遇到释放内存的问题。 这是学校的练习,用ADT实现二叉树,用数据类型char具体实现。 释放代码: void free_tree(TreeNode *root){ TreeNode *cur; if (!root) return; else{ cur = root; free_tree(cur->left); free_tree(cur->right); free(cur- ..
发布时间:2022-09-03 23:40:10 其他开发

在C++中是否兼容Malloc/Free和new/Delete?

很好地比较了Malloc/Free和new/Deletehere,并很好地解释了Malloc()和Free()是如何工作的here。显然,我们不应该将它们混为一谈--使用Free和new,或使用DELETE和Malloc。 我们可以看到很多开源项目,有许多贡献者,同时使用这两种机制,同时尊重上面的“不混合”规则。通常,在一个文件中只有一种方式(一个作者,一个偏好)。我已经分叉了这样一个项目, ..
发布时间:2022-06-11 22:09:48 C/C++开发

C++,新VS Malloc返回值

当我学习C99时,我被告知要始终检查malloc的返回值,以查看它是成功还是失败,但现在我开始学习C++,他们告诉我new不需要这样做,您可以假设它对您总是有效的。 但为什么会这样? 推荐答案 new仍然可能失败并引发std::bad_alloc异常,您的程序需要可能会检查它是否这样做了,或者只是让异常向上传播。您还可以向new传递一个标志,使其行为类似于malloc,并在出错时 ..
发布时间:2022-06-11 21:52:25 C/C++开发

使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_减少内存碎片

我一直在试验使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_ENV变量来影响长期运行的Python2进程中的内存管理。 请参见http://man7.org/linux/man-pages/man3/mallopt.3.html 我是从这个错误报告中得到这个想法的:http://bugs.python.org/issue11849 我得到的结果是令人鼓 ..
发布时间:2022-02-26 16:16:56 Python

初始化C动态数组

如何初始化使用malloc分配的动态数组?我可以这样做吗: int *p; p = malloc(3 * sizeof(*p)); p = {0, 1, 2}; ... free(p); 还是我需要这样做: int *p, x; p = malloc(3 * sizeof(*p)); for (x = 0; x ..
发布时间:2022-02-26 16:15:20 其他开发

如果您在程序终止前的malloc之后没有空闲,会发生什么情况?

我们都被教导必须释放分配的每个指针。不过,我对不释放内存的实际成本有点好奇。在一些明显的情况下,比如在循环或线程执行的一部分内调用malloc()时,释放内存是非常重要的,这样就不会有内存泄漏。但请考虑以下两个示例: 首先,如果我有如下代码: int main() { char *a = malloc(1024); /* Do some arbitrary stuff ..
发布时间:2022-02-26 16:14:07 其他开发

为什么 malloc 将 gcc 中的值初始化为 0?

可能平台不同,但是 当我使用 gcc 编译并运行下面的代码时,我每次在我的 ubuntu 11.10 中都得到 0. #include #include 主函数(){双 *a = malloc(sizeof(double)*100)printf("%f", *a);} 为什么即使有calloc,malloc的行为也会如此? 这是否意味着即使您有 ..
发布时间:2022-01-31 10:23:12 服务器开发

如何从 C 中的指针获取数组的大小?

我已经分配了一个大小为 n 的 mystruct 的“数组",如下所示: if (NULL == (p = calloc(sizeof(struct mystruct) * n,1))) {/* 处理错误 */} 后来,我只能访问p,而不再拥有n.有没有办法确定只给出指针 p 的数组的长度? 我认为它必须是可能的,因为 free(p) 就是这样做的.我知道 malloc() 会跟踪它分配 ..
发布时间:2022-01-31 10:05:57 其他开发

C 编程:另一个函数中的 malloc()

我需要 malloc() 在另一个函数中方面的帮助. 我将 pointer 和 size 从我的 main() 传递给函数,我想为该指针分配内存从被调用函数内部动态使用 malloc() ,但我看到的是......正在分配的内存是用于在我的被调用函数中声明的指针而不是指针这是在 main(). 我应该如何传递一个指向函数的指针并为传递的指针分配内存从被调用函数内部? 我编写了以下 ..
发布时间:2022-01-31 09:53:52 其他开发

Git 克隆因内存不足错误而失败 - “致命:内存不足,malloc 失败(尝试分配 905574791 字节)/致命:索引包失败"

我正在尝试将大型 (1.4GB) Git 存储库克隆到具有 384MB RAM 的 32 位 Debian VM.我正在使用 Git 1.7.2.5,并使用 SSH 协议进行克隆 ('git clone user@host.com:/my/repo') 克隆失败并显示以下消息: remote:计数对象:18797,完成.远程:警告:次优包 - 内存不足远程:压缩对象:100% (10363 ..
发布时间:2022-01-24 22:47:00 其他开发

使用 malloc 时从 `void*' 到 `char*' 的无效转换?

我在下面的代码中遇到问题,第 5 行出现错误: 错误:从 void* 到 char* 的转换无效 我正在使用带有代码块的 g++,并尝试将此文件编译为 cpp 文件.有关系吗? #include 主函数(){字符 *foo = malloc(1);如果(!foo){printf("malloc()");退出(1);}OPENSSL_cleanse(f ..
发布时间:2022-01-23 20:16:35 C/C++开发