【发布时间】:2017-04-23 11:31:37
【问题描述】:
我在 K & R 中做一个练习,要求我对 main 函数提供的数组中的行进行排序。我声明了一个这样的数组:char line[MAXLINES * MAXLEN],其中MAXLINES 和MAXLEN 分别是常量5000 和1000。我在主函数中声明了这一点。显然这只会使程序崩溃。我在 Windows 10、64 位上使用 Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x86。但是,当我使用 static 关键字声明数组时,就像这样:static char line[MAXLINES * MAXLEN],它可以工作。根据我对 static 关键字的了解,当应用于内部变量时,它会在函数中提供永久存储。但是从 static 关键字的定义来看,我不清楚为什么在没有 static 关键字的情况下声明的字符数组会崩溃。请注意,如果没有 static 关键字,较小的数组也可以正常工作。数组的大小是否有限制?
【问题讨论】: