我在C ++中有一个将数组传递给python代码的函数。据我了解,我需要delete[]
,所以不会累积内存。这是它在C ++方面的工作方式:
extern "C" char* func()
{
char* abc = new char[1000000]; //about 1MB
return abc;
}
所以在python中,我只是通过ctypes接收此数据,然后执行我的操作。我一遍又一遍地称呼它。这样最终会溢出我的RAM?有办法避免吗?
只需使用unique_ptr
!当功能范围终止时,它会删除自己。
unique_ptr<char> func()
{
unique_ptr<char> abc (new char[1000000]); //about 1MB
return abc;
}