当我运行以下代码时,while循环永远不会停止。为什么呢?
#include <sched.h>
#include <Python.h>
int main() {
Py_Initialize();
PyObject *pModule;
int time=0;
pModule = PyImport_ImportModule("entry");
while(pModule!=NULL)
{
Py_DECREF(pModule);
time++;
printf("this is decref pmodule, times= %d",time);
}
Py_Finalize();
return 0;
}
答案 0 :(得分:2)
当引用计数达到零时,指向的对象被销毁,内存被释放。
这不会以任何方式影响您的指针,但是您将留下指向已释放内存的无效指针。
这与“普通”C ++完全相同; delete p
不会影响p
的值,只会影响*p
的值和指针的有效性。