为什么当我尝试编译包含以下两行的代码时,gcc 或 clang 都没有生成错误?
int palindrome(char s[]){
char s2[strlen(s)];
我认为在这种情况下,您必须为 s2 动态分配内存。
最佳答案
GCC 对此行为进行了扩展,它在 C99 中也是标准的,称为可变长度数组。
http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html
由于 GCC C 和 C99,Clang 支持它:http://clang.llvm.org/compatibility.html#vla
关于c - gcc错误生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6159403/