c++基础问题,关于定义数组。

由于长期没有接触C++,以前的基础知识都忘了,问题是这样的:
首先,我有一个结构体:
struct MyConn{
int a;
char b;
}
int device_size=sizeof(MyConn);
为什么在我定义数组长度的时候
char rece[sizeof(MyConn)] 这样定义是正确的;
但是,
char rece[device_size]却是错误的?
求解!!

编译器,觉得你那个不是静态的量,所以编译不通过

int device_size=0;
先初始化下