有没有办法定义一个"缓冲区"在" main"中使用动态内存功能,但在外面使用" main"在另一个功能 即 我有一个数组我分配内存到"缓冲区" by" malloc" in" main"如下
int main()
{
uint32_t *buffer = malloc( array_size * sizeof *buffer);
}
但我必须在main
之外初始化值void fun(uint32_t data)
{
buffer[0] = data;
...
}
事实上,在我的情况下,数据来自运行时的相机
我也尝试使用" malloc"在全球范围内但它没有起作用
答案 0 :(得分:2)
一种简单而天真的方式:
uint32_t *buffer;
void fun(uint32_t data)
{
buffer[0] = data;
...
}
int main()
{
buffer = malloc( array_size * sizeof *buffer);
}
答案 1 :(得分:0)
将该变量作为参数传递给函数。
像这样,
void fun(uint32_t data,uint32_t* buffer){
// do your work
}
包含头文件stdlib.h
。像这样声明该函数的原型。
void fun(uint32_t,uint32_t*);
答案 2 :(得分:0)
您可以定义全局uint32_t点,例如uint32_t *buffer1
,然后让buffer1=buffer
在main中,并在其他函数中使用buffer1
答案 3 :(得分:-1)
创建fun函数所属的类。让该类使用类方法填充缓冲区。然后在main中创建该类的实例。让该实例完成工作,然后删除它。