malloc函数在C中执行动态内存分配,是标准库的一部分。有关malloc的用法,行为和实现的问题,请使用此标记。
所以这个错误是不言自明的,但我不明白我是如何得到它的。我做了 malloc,现在又抱怨了 free。 我正在尝试为自己构建一个地图/哈希表。我对 C 很陌生,但不是
我正在开发这个项目,该项目要求调用输入并在单独的显示函数中输出它们。对于我的一生,我无法理解是什么导致了这个代码段中的问题。我的...
我尝试在C中实现一个链表,由于没有释放一些malloc的变量,我遇到了一些内存泄漏。我不确定何时以及如何释放它们,因为我无法在你之前释放它们......
无法从我的 main 函数中访问使用 malloc 分配的内存
据我所知,在函数中使用 malloc 分配内存允许您在 main 中使用该内存,直到您手动释放它。我有一个函数可以读取 MNISTI 图像文件并创建矢量...
据我所知,每种类型(例如 int)只能存储在以 2 的幂开始的内存地址。现在我的问题是,malloc 如何应对这个要求?例如,如果我打电话 ...
运行此代码时没有任何输出。我期望使用大写值写入文件,并将大写值打印到屏幕上。 #包括 #包括 运行此代码时没有任何输出。我期望使用大写值写入文件,并将大写值打印到屏幕上。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main(int argc, const char * argv[]) { FILE *fP; char *str = "this is an example"; /* Im not sure if this line is right */ str = (char *)malloc(sizeof(char) * 100); fopen("4.txt", "w"); size_t length = strlen(str); for (size_t i = 0; i < length; i++) { /* This line fails */ fprintf(fP, "%c", toupper(*(str +i ))); printf("%c", toupper(*(str +i ))); } return 0; } 您正在运行 fopen() 而不返回 fp ,这只会打开文件流,但不会让它被 fp 引用,您需要将该行更改为 fp = fopen("4.txt" , "w"); 您也在 str 上运行 strlen() ,但由于您分配了内存但没有在其中存储任何内容(之前分配的字符串被覆盖),它将返回一个随机数( malloc() 给出了一个内存块而不清除以前的内存,因此,无论以前使用它的程序都将存储在其中),您都需要使用 strcpy() 将字符串设置到其中,如下所示 strcpy(str , "this is an example"); 如果解决了这两个问题,它应该可以运行。
我正在做CS50练习:许可证。这段代码是从txt文件中读取车牌并打印出来。 有人可以帮我知道为什么我的代码仍然存在内存泄漏吗? 我仍然收到...
这里用一个C程序来介绍这个问题。 #包括 #包括 #包括 int main(int argc, char *argv[]) { 如果(参数!= 2){ printf("
#包括 #包括 typedef int 数据类型; typedef 结构 singleLinkedList { 数据类型数据; 结构 singleLinkedList *下一个; }节点; typedef 节点 *linkList; 无效
MISRA C 建议不要使用 malloc,这是否意味着 calloc 更安全?
我已经使用C几年了,但最近才认真努力地理解未定义的行为和C内存泄漏的陷阱等。这是因为现在我在某些地方多次使用calloc...
假设我做了如下事情: size_t长度=1000; char* p = malloc(长度); 然后我想循环遍历元素,所以最基本的是: 对于 (size_t i = 0; i < length; ++i) { p[i...
我有以下结构,我正在尝试为下面的结构区域分配空间。 目前,我将该区域的空间分配为: 区域 *区域 = (区域*)malloc(sizeof(区域) + (大小...
Leetcode链表二第142题,解法错误,但为什么能成功?
这是我在leetcode中写的代码我知道它的实现是错误的,但是为什么会这样呢? struct ListNode *detectCycle(struct ListNode *head) { struct ListNode *cur = h...
计算 malloc() 和 realloc() 大小的正确方法?
我见过 malloc() 和 realloc() 使用了很多不同的方式。在测试了各种方法之后,我很好奇我是否正确使用了它们? 首先我尝试过 int 大小 = rowSize * colSize...
重新分配先前分配的指向 SIZE_MAX 的指针不会设置 ENOMEM,但重新分配 NULL 可以吗?
问题: 我正在努力重写一些 malloc 函数(malloc、calloc、realloc 和 free),并且我决定实现一些单元测试,希望能让自己的事情变得更容易一些...
我是 C 语言的初学者,所以我知道我的代码可能看起来很糟糕。我想做的就是创建一个链表,其中包含一个包含字符数组和频率整数的结构。它读取的行来自...
我的理解是,允许使用调用 malloc 返回的指针来调用 free(或任何其他返回指向堆上动态分配的内存的指针的函数,例如 strdup...
我有一个类似 C 语言的代码库,其中有一个需要返回 char * 的函数。有没有办法修改此代码,以便我可以返回 char * 而不会像这里一样导致内存泄漏?油嘴滑舌是
当 LC_CTYPE 设置为 C.UTF-8 时,Bash 在 Valgrind 中崩溃
Bash 5.2 由于 malloc 中的断言失败而崩溃,但仅当在 Valgrind 中运行且仅当设置 LC_CTYPE 时才会崩溃。这是一个示例输出: $ 路径/to/env - foo=bar LC_CTYPE=C.UTF-8 路径/to/valgrind