malloc 相关问题

malloc函数在C中执行动态内存分配,是标准库的一部分。有关malloc的用法,行为和实现的问题,请使用此标记。

用任意值初始化使用 malloc 创建的数组

我需要使用 malloc 创建大型浮点数组,以便在不再需要该数组时能够释放内存。 这些值是任意的,这意味着它们不全是零或全,更多是兰特......

回答 1 投票 0

使用范围挂钩时,大量分配元数据会导致 jemalloc 中出现碎片并浪费 DRAM

我正在编写一个简单的自定义范围分配器,它从预映射区域返回范围(这样我可以显式控制映射区域以及其中的分配)。我正在使用 dev 分支...

回答 1 投票 0

无法将值放在由指针和 malloc 启动的结构中

只是一个名为 person 的简单结构,里面我需要存储姓名和年龄。我正在尝试为我的结构动态分配内存。 不使用指针: #包括 #包括 只是一个名为 person 的简单结构,在里面我需要存储姓名和年龄。我正在尝试为我的结构动态分配内存。 不使用指针: #include <stdio.h> #include <stdlib.h> typedef struct person { char name[10]; int age; } person; int main(int argc, char *argv[]) { person a = {"bob", 15}; // Here, we can input values "together", all at once printf("name is %s, age is %i\n", a.name, a.age); return 0; } 到这里,就可以成功打印出: name is bob, age is 15 使用指针: int main(int argc, char *argv[]) { person *a = (person *) malloc(sizeof(person)); *a = {"bob", 15}; // Here I tried to input the all values printf("name is %s, age is %i\n", a->name, a->age); free(a); return 0; } 它不会编译并返回错误: expected expression before '{' token 好吧,如果我尝试一一输入值: int main(int argc, char *argv[]) { person *a = (person *) malloc(sizeof(person)); a->name = "bob"; a->age = 15; printf("name is %s, age is %i\n", a->name, a->age); free(a); return 0; } 可以成功打印出: name is bob, age is 15 我期望由于指针指向分配给结构体 person 的内存,因此可以像普通结构体一样一起输入值。但正如你所看到的,它不能。然而,当值被一一输入时,它就起作用了。 我做错了什么吗?或者使用指针时,需要一一输入值?谢谢。 您可能需要一个结构体文字。并且不要投射来自 malloc 的返回。 int main(void) { person *a = malloc(sizeof(person)); *a = (person){"bob", 15}; // Here I tried to input the all values printf("name is %s, age is %i\n", a->name, a->age); free(a); return 0; }

回答 1 投票 0

malloc():从二进制文件中删除条目时损坏的顶部大小

我正在创建一个学校管理系统。当我在添加学生后尝试删除学生时,出现“malloc():损坏的顶部大小”错误。无法找到原因。我是初学者,请帮助 P...

回答 1 投票 0

如何摆脱调用 fwrite 函数时的 C6387 警告?

在 Visual Studio 2022 中,当我调用 fwrite 时收到以下警告。 警告图像 C6387 它说:C6387:'fout'可能是'0':这不符合函数'fwr ...

回答 1 投票 0

malloc():损坏的顶部大小

我正在开发一个程序,可以解密文件中的某些文本行。首先,我创建的另一个源代码要求转换和一些文本。源代码对文本进行加密并将其写入文件中。 那个...

回答 2 投票 0

使用for循环给内存位置赋值时出错

我刚刚进入C编程世界,目前正在学习如何使用malloc和free。 我写了一个简短的练习代码来 printf 用 scanf 输入的字符串,我有

回答 1 投票 0

清除分配内存的功能不起作用

我正在尝试用C语言制作一个DTC。这是节点的结构: typedef 结构节点 { 整数值; 结构节点*下层; 结构节点*更高; } 节点; 释放使用...分配的内存

回答 1 投票 0

C 中用于清除已分配内存的函数不起作用

我正在尝试用C语言制作一个DTC。这是节点的结构: typedef 结构节点{ 整数值; 结构节点*下层; 结构节点*更高; }节点; 释放使用...分配的内存

回答 1 投票 0

是否可以将C++智能指针与C的malloc一起使用?

我的一些代码仍然使用malloc而不是new。原因是因为我害怕使用 new,因为它会抛出异常,而不是返回 NULL,我可以很容易地检查它。包裹每一个...

回答 10 投票 0

Malloc 有时在释放后立即失败

我想在内存不足的情况下测试我的代码。 我用 setrlimit 编写了这个函数来限制可用内存: 无符号短整型 oom_enable = 0; 字符* _oomfill = NULL; uint32_t oom_setup(

回答 1 投票 0

如何知道堆溢出点?

我正在尝试编写一个程序来确定给定范围内的所有回文。 我的程序调用一个函数(位数),该函数返回整数的大小(即 400 将是 3,因为它...

回答 1 投票 0

Mac OS Catalina sbrk 已弃用

我正在尝试用 C 语言实现自己的内存分配器。当我尝试在 Mac OS Catalina 的终端中编译代码时,它说函数“sbrk”已被弃用。是否

回答 2 投票 0

如何为malloc分配的数组释放内存?

我有两种代码变体: 第一: void PrintMem(const int* memarr,const size_t 大小) { 对于 (size_t 索引 = 0;索引 < size; ++index) { std::cout << '<'<<(index+1)<<...

回答 1 投票 0

显示错误值:C 指针或 malloc 问题?

我的程序将矩阵1乘以矩阵2。矩阵3就是结果。 我可以使用正确的值显示矩阵 1 和矩阵 2,但我无法显示相同的函数 exp...

回答 1 投票 0

使用malloc函数一次将所有未初始化的变量初始化为0

malloc 函数不应像 calloc 函数那样为其使用的任何变量初始化任何值。那么为什么我不断获得所有其他变量的初始化值...

回答 1 投票 0

当我在串行监视器中键入输入时,没有任何内容打印

我是Arduino新手。我正在尝试学习如何通过 USB 接收数据,但它不起作用。 这是我的代码: 结构体数组数据{ 字符*数组; 整数大小; }; 无效设置(){ // 把 y...

回答 1 投票 0

C 从示例中返回 libcurl 响应作为参数

我正在遵循这个 libcurl 示例中的代码,一切似乎都可以完美地独立工作,因此我想将其作为自己文件中的函数,以便在其他代码中重用。 我添加了两个参数...

回答 1 投票 0

无法使用 valgrind 调试 python C 扩展

我正在尝试调试使用 CFFI 制作的 C 扩展。我正在使用 Python 3.11 和 Valgrind 3.18.1。 据我从文档中可以看出,唯一需要的设置是设置 PYTHONMALLOC=malloc 环境...

回答 1 投票 0

STM32开发中malloc使用和heap_size配置问题排查

我目前正在使用ST的ARM-M4芯片开发一个程序,并移植了一个网络库。在调试过程中,我注意到如果我不将 .s 文件中的 heap_size 增加到 0x400,...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.