malloc相关内容

在 c [BEGINNER] 中使用 malloc 实现堆栈

出于学习目的,我在 c 中实现了一个堆栈及其函数.我添加了一些小的附加功能来第一次使用 malloc 并尝试正确理解它. 我写了一个函数,它最初是创建我的堆栈结构.该函数的返回值是一个已分配内存的新结构.在返回值应该是结构的函数中处理 malloc 异常的最佳方法是什么?也许我应该设计不同的功能?我知道 printf 没有做它的工作;) 我的堆栈结构: typedef 结构栈{整数计 ..
发布时间:2022-01-22 13:00:14 其他开发

如何在 C++ 中创建一个位于堆而不是堆栈的数组?

我有一个非常大的数组,它的长度必须是 262144 个元素(将来可能会更大).我试过像这样在堆栈上分配数组: #define SIZE 262144int myArray[大小]; 但是,当我尝试添加超过某个点的元素时,当我尝试访问它们时,这些值似乎有所不同.我知道这是因为堆栈上只有有限数量的内存,而不是具有更多内存的堆. 我尝试了以下方法,但运气不佳(无法编译): #define S ..
发布时间:2022-01-22 12:29:29 C/C++开发

如何迭代所有 malloc 块(glibc)

我正在尝试迭代所有领域中的所有 malloc_chunk.(基于core文件调试,用于内存泄漏和内存损坏调查) 据我所知,每个竞技场都有 top_chunk,它基于 top_chunk 指向一个竞技场内的顶部块,其中有 prev_size 和 size,基于代码 (glibc/malloc/malloc.c):我可以得到之前的连续块,然后在一个竞技场中循环所有块.(我可以统计块的大小和数量, ..
发布时间:2022-01-20 20:52:02 C/C++开发

在 gdb 会话中调用 malloc 失败

我正在尝试调试 C 程序,而 gdb 告诉我某个函数的第 329 行存在段错误.因此,我为该函数设置了一个断点,并尝试逐步完成它.但是,每当我点击第 68 行时,我都会从 gdb 收到此投诉: (gdb) 步骤68 next_bb = (basic_block *)malloc(sizeof(basic_block));(gdb) 步骤*__GI___libc_malloc (bytes=40) ..
发布时间:2022-01-20 20:11:13 其他开发

`malloc()` 刚刚分配的内存的内容是什么?

我很好奇在 malloc() 用于分配内存空间之后,指针究竟是什么?手册页告诉我 calloc() 将分配的内存空间初始化为零. malloc() 函数分配 size 字节并返回一个指向已分配内存的指针.内存未初始化.如果 size 为 0,则 malloc() 返回 NULL,或稍后可以成功传递给 free() 的唯一指针值. 和 calloc() 函数为每个大小字节的 nme ..
发布时间:2022-01-18 23:50:16 其他开发

使用 malloc 分配 char 数组

考虑以下行: char *p = malloc( sizeof(char) * ( len + 1 ) ); 为什么要使用 sizeof(char)?这没有必要,不是吗?还是只是风格问题? 它有什么优势? 解决方案 是的,这是风格问题,因为您希望 sizeof(char) 始终为一. 另一方面,在执行 malloc 时使用 sizeof(foo) 是一种习惯用法,最重要的是 ..
发布时间:2022-01-12 20:43:07 其他开发

何时将 malloc 用于 char 指针

我特别关注何时在 char 指针上使用 malloc char *ptr;ptr = "某事";...代码......代码...ptr = "别的东西"; malloc 会为了这样微不足道的事情而存在吗?如果是,为什么?如果没有,那么什么时候需要 char 指针? 解决方案 正如其他人所指出的,您不需要使用 malloc 来做: const char *foo = "bar"; 原 ..
发布时间:2022-01-12 20:40:45 其他开发

malloc 的最佳实践是什么?

如果以下任何一项是正确的并且被认为是创建能够容纳 100 个字符的 char 字符串的最佳做法,那么哪一项是正确的? char * charStringA = malloc(100);char * charStringB = malloc(sizeof(char)*100);char * charStringC = (char*)malloc(100);char * charStringD = ..
发布时间:2022-01-12 20:32:16 其他开发

在结构中使用指向动态二维数组的指针

我一直在为我的电磁仿真课程编写一段代码,但遇到了问题.我决定做一些额外的事情,将原始计算扩展到多达 10^8 个元素的非常大的网格,所以现在我必须使用 malloc(). 到目前为止,一切都很好,但是由于我更喜欢​​将代码保存在库中,然后使用编译器的 inline 选项进行编译,因此我需要一种在函数之间传递信息的方法.所以,我开始使用结构来跟踪网格的参数,以及指向信息数组的指针.我通过以下方 ..

尝试在 C 中读取迷宫文本文件时出现 malloc 错误

我正在尝试让我的代码从内容涉及的文本文件中读取:(文本文件名为maze1.txt) 5 5%%%%%% %% % %% E%%%%% 但是,每当我尝试运行程序时,我都会收到 分段错误,我认为这与我使用 malloc 的方式有关.我知道我已经使用第一个数字来为我的数组设置边界,但我不确定如何做到这一点. 提供的是我的代码: #include #include ..
发布时间:2022-01-12 16:11:58 其他开发

将 malloc 与 char 指针一起使用时出现分段错误

我是 C 和学习结构的新手.我正在尝试 malloc 一个大小为 30 的 char 指针,但它给出了分段错误(核心转储).我在互联网上搜索了它&所以但我无法解决这个问题.任何帮助将不胜感激. 可能我错误地访问了结构的 char* 成员? typedef 结构{诠释 x;整数y;字符 *f;字符 *l;}str;无效 create_mall();void create_mall()//Mall ..
发布时间:2022-01-12 16:02:50 其他开发

malloc() 如何导致 SIGSEGV?

我的程序中有一个奇怪的错误,在我看来 malloc() 导致了 SIGSEGV,据我所知,这没有任何意义.我正在为动态列表使用一个名为 simclist 的库. 这是一个稍后引用的结构: typedef 结构 {整数 msgstr;整数状态;无效* udata;list_t 队列;} msg_t; 这里是代码: msg_t* msg = (msg_t*) malloc( sizeof( ..
发布时间:2022-01-12 15:54:46 其他开发

为什么 malloc 有时不起作用?

我正在将一个 C 项目从 Linux 移植到 Windows.在 Linux 上它是完全稳定的.在 Windows 上,它大部分时间都运行良好,但有时我会遇到分段错误. 我正在使用 Microsoft Visual Studio 2010 进行编译和调试,看起来有时我的 malloc 调用根本不分配内存,返回 NULL.机器有空闲内存;它已经通过该代码一千次了,但它仍然发生在不同的位置. ..
发布时间:2022-01-12 15:43:31 其他开发

C:malloc 似乎分配的比我请求的多(数组)

您好,我有这个问题:为什么当我使用 malloc 为浮点数组分配内存时,它会分配我请求的更多空间?例如,在这段代码中,我试图分配一个十个“单元"浮点数组,但是如果我尝试访问其他单元,它不会返回任何段错误: #include #include #include 浮动 *fk_array;int main(int argc, char** a ..
发布时间:2022-01-12 15:41:09 其他开发

malloc 分段错误

这是发生分段错误的一段代码(未调用 perror): job = malloc(sizeof(task_t));如果(工作 == NULL)perror("malloc"); 更准确地说,gdb 表示 segfault 发生在 __int_malloc 调用中,这是由 malloc 进行的子例程调用. 由于 malloc 函数是与其他线程并行调用的,最初我认为这可能是问题所在.我使用的是 ..

如何解决 malloc 中的崩溃问题

我继承了大量遗留代码.到目前为止,它一直运行良好.突然在我无法在内部重现的客户试用中,它在 malloc 中崩溃.我认为我需要添加工具,例如在 malloc 之上我有自己的 malloc 来存储有关每个 malloc 的一些元信息,例如谁进行了 malloc 调用.当它崩溃时,我可以查找元信息并查看发生了什么.几年前我做过类似的事情,但现在想不起来了……我相信人们已经想出了更好的主意.很高兴有意见 ..
发布时间:2022-01-12 11:11:54 其他开发

malloc: *** 错误: 已释放对象的校验和不正确 - 对象可能在被释放后被修改

我的 iOS 应用程序有一个大问题:它有时会在没有详细调试错误的情况下崩溃.堆栈跟踪为空.这些是堆栈跟踪中仅有的两行: 在 UIApplicationMain 中的“symbol stub for: -[_UIHostedTextServiceSessiondismissTextServiceAnimated:]"处开始崩溃. 并报告“libsystem_c.dylib`malloc_er ..
发布时间:2022-01-12 11:02:34 移动开发