
[英]Memory leaks when reading and transforming a file into a two-dimensional array in C
我正在 C 中写一个 function 来加载一个文件作为双维数组( char ** ),问题是根据 Valgrind 我有 memory 泄漏,你能帮我吗? 我为您提供了一个可以复制的完整示例。 此外,我的学校只允许我执行此任务的某些功能: open 、 fopen 、 close 、 fclos ...
[英]Memory leaks when reading and transforming a file into a two-dimensional array in C
我正在 C 中写一个 function 来加载一个文件作为双维数组( char ** ),问题是根据 Valgrind 我有 memory 泄漏,你能帮我吗? 我为您提供了一个可以复制的完整示例。 此外,我的学校只允许我执行此任务的某些功能: open 、 fopen 、 close 、 fclos ...
[英]Is it possible to detect when an user closes the console in C?
我想知道是否可以检测到用户何时关闭控制台,然后执行 function 以释放之前 malloc 调用分配的 memory。 我知道像 Windows/Linux/MacOS 这样的主要操作系统应该在控制台关闭时释放这个 memory,但我认为最好让程序尽可能少地依赖操作系统。 ...
[英]malloc in C. memory overlaping
我正在学习 C 并且不明白当 malloc 返回的malloc区域重叠时如何处理这种情况。 这是一个小演示程序#include <stdio.h> #include <stdlib.h> #include <ctype.h> void print_mem(cha ...
[英]Memory leakage in a dynamic size database
我尝试创建一个动态数据库,用户在其中输入他们想要创建的数据库的大小,但是在输入一定数量的大小后我得到了 memory 泄漏并且我不确定我做错了什么因为我应该释放所有东西。#include <stdio.h> #include <string.h> #include <s ...
[英]Allocating the proper memory for a function that recieves a structure
我正在尝试创建一个动态数据库,我可以在其中修改其大小。 这是我到目前为止编写的代码,我将产品字符指针分配给null并将价格分配给-1我期望它是创建数据库并让我继续创建具有新大小的新数据库来替换旧数据库,但到目前为止它只返回 memory 方向并停止程序。 ...
[英]allocating node on the heap, difference between first assign to NULL and direct assignment with malloc [c]
我正在尝试使用链表实现一个堆栈,首先我有以下代码: 对于inti_stack function,我可以只执行以下操作吗? ...
[英]How does Linux implement optimistic memory allocation?
在linux 手册页中, 默认情况下,Linux 遵循乐观的 memory 分配策略。 这意味着当 malloc() 返回非 NULL 时,无法保证 memory 确实可用。 Linux 是如何延迟分配 memory 的? 我的猜测是 sbrk 被调用,Linux 记住进程 ID 并存储某种映射 ...
[英]Address boundary error - Why don't the nodes in my linked list get added properly?
我正在尝试在 C 中实现一个链表,但是我似乎无法弄清楚如何将 append 元素添加到列表中。#include <malloc.h> #include <stdio.h> #include <stdlib.h> typedef struct element { ...
[英]Difference in nvprof output between a C++ and Fortran CUDA basic example
我在自学CUDA。 我的最终目标是将它应用到 Fortran,但是因为很多课程/视频都是基于 C/C++ 的,所以我经常最终会在两者中执行相同的练习(这是一件好事)。 目前,我正在尝试运行一个基本练习,它在 GPU 上执行 a(i) = b(i) + c(i)。为了完整起见,我发布了两个代码以进行比 ...
[英]Reinitialize dynamically allocated memory
我在使用的开头动态分配 memory: 其中 Candset 和 Point_t 都是 typedef。 后来我在循环结束时释放了 memory: 我这样做的原因是因为我想在循环的所有迭代中重用相同的变量(内存空间)。 这实际上会导致堆碎片化。 因此,性能下降。 我该如何解决这个问题? 是否可以重 ...
[英]Merge two integer arrays in C
我正在尝试编写一个 function 来合并两个已签名的 integer arrays。这个想法是获取 src 的内容,在 dest 中重新分配 memory 以在它自己的内容之后插入 src 的内容。 如果dest是NULL,function必须分配memory空间来存储src + 1。如果有错 ...
[英]How does GLIBC decide segment for malloc
我查看了一些 Linux Glibc(2.25) 系统,看到代码使用malloc时。 有时缓冲区已经分配在堆段,有时在匿名段,它与大小无关,我可以在/proc/PID/maps中看到所有段我认为堆段与malloc相关,匿名段与mmap相关。 但是为什么 GLIBC 决定使用相同大小的malloc有时 ...
[英]Trouble passing a 2d array to function after malloc
在久违之后,我最近又回到了 C,我这辈子都记不起如何将 2D 矩阵传递给 function 并在 mallocating 之后使用它。 我相信我已经正确传递了指针,但我似乎无法实际访问矩阵中的任何内容,也无法弄清楚原因。 这是我写的: 目标是让它接受用户输入的矩阵大小,用计数填充每个索引,然后将其传 ...
[英]Problems in client server application when using malloc to allocate buffer
我正在从事一个包括服务器-客户端通信的项目。 我们的代码并非一直有效,有时它可以完美运行。 但有时我们要么超时,要么我们的缓冲区不能正常工作。 这就是我们要实施malloc()的原因。 你认为这有帮助吗? 我们在malloc()之前的代码: 我们的malloc()代码不再有效: 任何帮助表示赞赏! ...
[英]Dynamic allocation outside the scope of a function
如果我想创建一个用作全局变量的数组,以防万一我已经知道大小我可以这样做: 但是,这不适用于malloc 。 确实,下面的代码 将返回一个错误( error: initializer element is not constant )。 但是,如果我尝试在 function 的 scope 内部执行相 ...
[英]Allocating and accessing array inside C function
我写了一个 function 来为一个数组分配 memory 并将数组长度存储在一个指针中,这样我就可以在我的主 function 中使用这两个。一切似乎都工作正常,直到我尝试遍历数组打印值。 当我使用数组大小指针终止打印循环时,它显示出奇怪的行为。 你能告诉我哪里出错了吗? 提前致谢:) ...
[英]How to detect invalid reads (using code not valgrind)
假设你像这样分配了一个指向 char 的指针char *ptr = malloc(10 * sizeof(char)) 如果把这个ptr传给另一个function而不传递它的大小,我们是否可以检测到ptr[10]正在读取不属于这个指针的memory。 我知道如果我使用 valgrind 我会得到无 ...
[英]Malloc array of characters. String
我知道,由于 NULL 字符,为字符串分配 memory 分配需要 n+1。 但是,问题是如果分配了 10 个字符但输入了 11 个字符的字符串怎么办? 我尝试运行该程序,但结果仍然与 n+1 相同。 ...
[英]IOT instruction when freeing a malloc'ed array
我正在开发一个程序,该程序应该将字符串作为参数并按出现顺序显示每个单词的出现次数。 当字符串包含超过 3 个不同的单词时,我遇到了问题。 错误: 瓦尔格林德: 代码:#include <stdbool.h> #include <stdio.h> #include <st ...
[英]Musl mmap ENOMEM
我针对 musl(x86_64、i686、arm)编译了一些交叉编译器。 我需要编译代码,分配大约 2048 Mb +- 200Mb。 但是我注意到 i686 musl 编译器有一些错误:#include <stdio.h> #include <sys/mman.h> #i ...