gpt4 book ai didi

python - 参数指向 PySys_SetArgv() 的字符串是否应该保留在内存中直到 Py_Finalize()?

转载 作者:太空宇宙 更新时间:2023-11-03 23:45:32 27 4
gpt4 key购买 nike

我有如下一段代码

int nArgs;
if (LPWSTR * const szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs))
{
PySys_SetArgvEx(nArgs, szArglist, false);
LocalFree(szArglist);
}

我在 Python 中找不到 documentation如果 szArglist 指向的内存应保留到 Python 关闭或我可以立即释放它。

有人可以解释一下吗?

谢谢!弗拉基米尔

最佳答案

Python C API 看起来像是在使用一个新的 PyList 对象来填充参数,并且正在为 char* 参数分配自己的内存。

对于长度超过 1 个字符的字符串,PySys_SetArgvEx 将为该字符串 malloc 自己的内存。

因此,删除您传递给 PySys_SetArgvEx 的任何已分配内存是安全的。

关于python - 参数指向 PySys_SetArgv() 的字符串是否应该保留在内存中直到 Py_Finalize()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34510834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com