是否可以删除传递给python的指针?

问题描述 投票:0回答:1

我在C ++中有一个将数组传递给python代码的函数。据我了解,我需要delete[],所以不会累积内存。这是它在C ++方面的工作方式:

extern "C" char* func()
{
    char* abc = new char[1000000]; //about 1MB
    return abc;
}

所以在python中,我只是通过ctypes接收此数据,然后执行我的操作。我一遍又一遍地称呼它。这样最终会溢出我的RAM?有办法避免吗?

python c++ arrays pointers ctypes
1个回答
0
投票

只需使用unique_ptr!当功能范围终止时,它会删除自己。

unique_ptr<char> func()
{
    unique_ptr<char> abc (new char[1000000]); //about 1MB
    return abc;
}
© www.soinside.com 2019 - 2024. All rights reserved.