|
|
1
8
尝试用编译
那么你不应该在你的代码IMHO中使用VLAs。 |
|
2
7
我会选择:
或者,因为除了打印字符串之外,您实际上没有对字符串执行任何操作:
:-)
如果组合字符串合适,则使用堆栈存储,如果不合适,则只分配内存。如果大量字符串组合成小于限制值的字符串,这通常会导致速度大幅提高。 |
|
|
3
3
可变长度数组不是第一个isoc标准的一部分(不同地称为“C89”、“C90”或“ansic”)。然而,他们 最新ISO C标准(称为“C99”)的一部分。 GCC可以在几种模式下编译您的代码,包括“strict C90”、“C90-with-GNU-C-extensions”和“C99”(尽管它没有)
默认情况下,GCC使用“C90-with-GNU-C-extensions”,这就是为什么您的代码可以毫无怨言地编译。使用
如果要确保代码与基本C90标准兼容,请使用
|
|
|
4
0
解决这些问题的一个非常常见的习惯用法是让调用者管理内存。因此,与其自己分配内存(要么在堆栈上使用可变长度数组,要么
这种方法的优点是
|