问题遇到的现象和发生背景
在之前看到的数据库源码(C++)中,遇到变长数组可以初始化的情况,但是自己尝试却不可以。
如图:
问题相关代码,请勿粘贴截图
#include <stdio.h>
static const int LEN = 1024;
int main() {
int num = LEN / 2 + 1;
unsigned char array[num] = {0};
return 0;
}
运行结果及报错内容
test.cpp:8:23: error: variable-sized object may not be initialized
unsigned char array[num] = {0};
^~~
1 error generated.
我的解答思路和尝试过的方法
尝试在编译时使用不同的C++标准,但是都会遇到相同的错误,这个是与编译器有关么?
我想要达到的结果
弄清楚数据库源码那里为什么可以这么使用(数组长度是个变量,但是声明的同时可以进行初始化)