定义在全局:
char* save_video_box_buffer = (char*)malloc(1920*1080*3/2);
编译报错:
ky_ai_camera_engine_origin.c:737:31: error: initializer element is not constant
原因:
不能将全局变量初始化为一个无法在编译时期确定的值。
编译器在生成目标文件时,需要将代码段、数据段(初始化了的全局变量和静态变量,未初始化的不会占用磁盘空间)写入目标文件,因此需要在编译时期确定全局变量的值,而 malloc 需要在运行时分配内存,所以就出现这个错误了。
解决办法:
可以放在main函数里初始化,然后通过传参的方式让其他函数或线程调用