Tag: 重置

如何重置函数内的静态变量

有没有办法重置函数中声明为static的变量? 目标是确保不使用来自不相关调用的延迟值调用该函数。 例如,我有一个矩arrays的函数opearting。 int foo(matrix *A, int colnum, int rownum){ static int whichColumn; static int *v; //vector of length A->nrows if (column != whichColumn){ memset(v,0,size); whichColumn = which; } //do other things } 该函数被调用n次,每列一次。 这是“重新设置”静态变量的正确方法吗? 是否有其他一般的万无一失的重置静态变量的方法? 例如,我想确保如果使用可能具有不同维度的新矩阵进行调用,则向量v被resize并归零等。似乎最简单的方法是使用NULL指针调用该函数: int foo(matrix *A, int colnum, int rownum){ static int whichColumn; static int *v; //vector of length A->nrows if […]