c语言——全局变量莫名其妙被修改

  之前写一个程序的时候,设置了一个全局变量的标志,但是在程序运行的过程中这个全局变量的值总是莫名其妙的被改变

定义:

int plug[N][N];
int global_plug=0;

最后发现是因为在程序中对plug使用的是[1,N],可能是因为定义的时候,global与plug挨着,所以其 实际的物理存储可能也是相邻。

在使用plug[N][N]或者plug[N][N-1]等等的时候改变了global_plug,所以会出现全局变量被莫名其妙的修改

只需要plug[N+1][N+1]就好了


作者:孙建钊
出处:http://www.cnblogs.com/sunjianzhao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/sunjianzhao/p/14589618.html