标签:
假如有一个全局数组,int a[100],当在函数中对它进行操作,尤其是需要反复计算时,要注意它的状态。因为全局数组一旦存有数据,就不会随着某些函数的结束而清空。
举例:阶乘的一个算法中,配置全局数组之后,每次对具体的一个数计算阶乘时,都要对数组的部分元素进行计算,而下次再计算另一个数时,就会借用上次的值,因此而发生错误。这种错误的形状:
int a[100];/*全局数组*/ void f( )/*计算函数*/ { ....操作数组a.... } main() { do { ...重复计算阶乘.. f( ); /*调用函数*/ }while(1); .. }
所以,在这种情境之下,每次调用函数都要将全局数组还原到最初状态,可以用memset()函数、
标签:
原文地址:http://www.cnblogs.com/tinaluo/p/5339731.html