我有以下代码
int nArgs;
if (LPWSTR * const szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs))
{
PySys_SetArgvEx(nArgs, szArglist, false);
LocalFree(szArglist);
}
我无法在Python documentation中找到szArglist指向的内存,直到Python关闭或我可以立即释放它。
有人可以对此有所了解吗?
谢谢! 弗拉基米尔
答案 0 :(得分:1)
Python C API看起来像是使用新的PyList对象来填充args,并为char *参数分配自己的内存。
对于长度超过1个字符的字符串,PySys_SetArgvEx将为字符串malloc自己的内存。
因此,删除传递给PySys_SetArgvEx的任何内存是安全的。