在 main 中使用 malloc 但在 main 外部访问

using malloc in main but accessing outside main

有没有一种方法可以定义一个 "buffer" 在 "main" 函数中使用动态内存,但在 "main" 之外的另一个函数中使用它 IE。 我有一个数组,我在 "main" 中通过 "malloc" 将内存分配给 "buffer",如下所示

int main()
{
uint32_t *buffer = malloc( array_size * sizeof *buffer);


} 

但我必须在 main

之外初始化值
void fun(uint32_t data)
{
buffer[0] = data;
...

}

事实上,在我的案例中,数据来自 运行 时间的相机

我也尝试过在全局范围内使用 "malloc" 但它没有用

将该变量作为参数传递给函数。

像这样,

void fun(uint32_t data,uint32_t* buffer){ 
 // do your work
}

包含头文件stdlib.h。像这样声明该函数的原型。

void fun(uint32_t,uint32_t*);

一种简单而天真的方式:

uint32_t *buffer;

void fun(uint32_t data)
{
    buffer[0] = data;
    ...

}

int main()
{
    buffer = malloc( array_size * sizeof *buffer);
} 

你可以定义一个全局的uint32_t点,比如uint32_t *buffer1,然后让buffer1=buffer在main中,在其他函数中使用buffer1

创建 fun 函数所属的 class。让 class 用 class 方法填充缓冲区。然后在 main 中创建那个 class 的实例。让该实例完成工作,然后将其删除。