4798| 3
|
linux驱动-gcc编译器支持动态数组吗?为什么可以这样定义数组? |
1金钱
最佳答案这叫vla(variable-length array),变长数组,是C99新增的特性,与gcc无关,只要支持c99或以上的c/c++编译器均可。
变长数组是针对动态分布在栈上的数组(一般为函数局部可见的数组),利用栈空间的灵活性根据输入参数调整数组的长度,函数退出时自动回收,不必考虑分配失败或内存泄漏的问题;
另一种类似的方式是malloc,它是分配在堆上的内存,需要使用free及时释放否则会内存泄漏。
由于变长数组会导致函数的调用栈大小 ...
| ||
发表于 2021-1-14 17:26:06
|
显示全部楼层
| ||
坚决不用寄存器,拒绝重复造轮子。
|
||
发表于 2021-1-15 02:30:33
|
显示全部楼层
| ||
| ||
|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )
GMT+8, 2024-11-25 21:31
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网