1、在函数里定义数组的时候,使用变量作为数组大小是否有问题?
之前我一直以为不能这么做,后来发现c99后支持了VLA,即动态数组。于是有了下面两个问题。
2、sizeof是编译期间获得的值还是运行时获得的值?
VLA肯定是需要运行时确定的值
3、栈空间需要在函数运行时确定大小吗?
我之前一直以为栈空间是在调用这个函数的时候在编译期间计算出大小,但是考虑到VLA,还有一些情况需要运行的时候决定数组要多大,所以函数应该是支持运行时调整栈深的。
本文共 273 字,大约阅读时间需要 1 分钟。
1、在函数里定义数组的时候,使用变量作为数组大小是否有问题?
之前我一直以为不能这么做,后来发现c99后支持了VLA,即动态数组。于是有了下面两个问题。
2、sizeof是编译期间获得的值还是运行时获得的值?
VLA肯定是需要运行时确定的值
3、栈空间需要在函数运行时确定大小吗?
我之前一直以为栈空间是在调用这个函数的时候在编译期间计算出大小,但是考虑到VLA,还有一些情况需要运行的时候决定数组要多大,所以函数应该是支持运行时调整栈深的。
转载于:https://www.cnblogs.com/scaugsh/p/11527405.html