gpt4 book ai didi

c - 在 C 项目的 .c 文件内的函数中,如何重用分配的内存,这样我就不会经常使用 malloc-free?

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:49 24 4
gpt4 key购买 nike

我有一个函数,我需要在其中使用一个指向结构的指针,比如

      void func(struct Info* info){
struct Block *p = malloc(sizeof(struct Block));
sub_func1(p, info); // here will fill the content pointed by p
sub_func2(p); // here just use content in p
free(p);
}

这个函数在.c文件中,.c文件是一个c工程的一个文件。我想重用分配的内存,这样我就不需要频繁地 mallocfree。即,我只执行一次 malloc。但是我不知道在哪里定义和指针并执行 malloc,任何人都可以提供一些建议吗?

顺便说一句,如果我在.c文件中有一些静态变量和静态函数,我是否需要在相应的.h文件中声明它们,比如extern static var;extern static void func();?

谢谢!

最佳答案

这是怎么回事?

void func(struct Info* info){
struct Block p;
sub_func1(&p, info); // here will fill p
sub_func2(&p); // here just use content in p
}

使用 malloc() 的唯一原因是 struct Block 太大而不适合堆栈。

关于c - 在 C 项目的 .c 文件内的函数中,如何重用分配的内存,这样我就不会经常使用 malloc-free?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com