我有这个看起来像的c程序。
int indexLength;
char *args[1024];
while(args[indexLength])
indexLength++;
如果我在工作时在计算机下运行程序,while 循环行会给我一个段错误..并且 indexLength 采用一些荒谬的任意值。但是如果我在家里的 linux 机器上运行程序,没有段错误,我的程序运行正常。
我能想到的 2 台机器之间的唯一区别是,工作中的那台具有 gcc4.7 redhat 版本,并且正在运行 Fedora OS,而我家的机器具有从 ppa 存储库下载的 gcc4.7,并且正在运行 ubuntu OS。但是,我不相信这是唯一的区别!会是什么?
编辑:对不起,我忘了提。如果我初始化 indexLength = 0..