我想初始化这个:
toto.cpp
typedef struct {
...
unsigned char au8FrameBuffer[FRAME_SIZE];
...
}tstrFrameRawData;
但帧大小取决于文件中写入的配置。
主要.cpp
string cameraSource = configFile.getItem("CAMERA_SOURCE");
if (cameraSource == "CAMERA_WGA")
{
frameFormat = FDESC_u8FORMAT_GRAY_8BIT_752_480;
frameWidth = 752;
frameHeight = 480;
FRAME_SIZE
是 frameWidth*frameHeight
,它们是全局变量。
但由于 unsigned char au8FrameBuffer[FRAME_SIZE]
正在等待常量 FRAME_SIZE,我不知道如何传递它。
最佳答案
您可以在结构中使用字符指针,并在计算其大小后在堆上动态创建数组。
typedef struct {
...
unsigned char* au8FrameBuffer;
...
}tstrFrameRawData;
....
FRAME_SIZE=frameWidth*frameHeight;
tstrFrameRawData.au8FrameBuffer=new unsigned char[FRAME_SIZE];//dynamically created the array
....
//delete[] tstrFrameRawData.au8FrameBuffer;//delete it once you are done
关于c++ - 根据文件读取条件初始化struct中char的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304437/