在Windows下,我用R调用了C,并且用RStudio打成了包,在NAMESPACE里声明了useDynLib,
在RSsudio里运行遇到的问题是:第二次用R调用C的时候,C里面的变量还保留着第一次的值!
比如,第一次运行xTemp初始化为0,运行结束后得到xTemp=200。
第二次运行时,xTemp不是0,而是200,也就是保留着第一次运行的结果。这样就直接对程序的运行出现了影响。
我之所以说R打包后出现这种情况,因为如果不打包的话,我两次执行R调用C,这两次是互不影响的,也就是第二次执行时,xTemp=0,而不是第一次运行的结果。
所以,如何清除多次运行中,C中变量的内存保留问题呢?也就是如何保证,多次运行之间变量互相不影响呢?