在 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 的实例。让该实例完成工作,然后将其删除。
有没有一种方法可以定义一个 "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 的实例。让该实例完成工作,然后将其删除。