问我如何声明一个大小与传入数组匹配的局部数组?
答直到最近,你还不能做到这一点;C 语言中数组的维度传统上必须是编译时常量。然而,C99 引入了可变长度数组 (VLA),这解决了这个问题;局部数组的大小可以由变量或其他表达式(可能涉及函数参数)来设置。(gcc在一段时间内以扩展的形式提供了参数化数组。)如果你不能使用 C99 或gcc,你将不得不使用malloc,并记得在函数返回前调用free。另请参阅问题 6.14、6.16、6.19、7.22,以及可能的 7.32。
参考:ISO Sec. 6.4, Sec. 6.5.4.2
C9X Sec. 6.5.5.2