这样也可以...
程序能正常运行,打印的data size还是对的...,怎么解释?
编译器是aarch64-linux5.4-gcc
C++ 14
找了半天资料总结一下网上的观点:
1、这种情况是gcc扩展形为
2、不建议这样使用,出问题不好排查
3、老老实实用malloc或者new
我的意思是:不要怂,直接用,真香~~,注意控制一下data_size
--------------------华丽的分隔线----------------
注:[ ] 在c99之前 里面必须是常量 c99之后 支持了变长数组的概念。
所以可以这样写:
void method(int data_size)
{
i(data_size<=0 || data_size>100)
{
printf("data size exception");
return;
}
uint8_t data[data_size];
memset(data, 0, sizeof(data));
}