Python的扩展(Malloc)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python的扩展(Malloc),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含867字,纯文字阅读大概需要2分钟。
内容图文
![Python的扩展(Malloc)](/upload/InfoBanner/zyjiaocheng/771/f4ce078a982745818ee560ecef033586.jpg)
我正在为python编写C扩展.我想要做的就是将大小作为输入,创建该大小的对象并返回该创建对象的引用.我的代码看起来像:
static PyObject *capi_malloc(PyObject *self, PyObject *args)
{
int size;
if (!PyArg_ParseTuple(args, "i", &size))
return NULL;
//Do something to create an object or a character buffer of size `size`
return something
}
我怎样才能做到这一点?我能够使用PyMem_Malloc()分配内存,但对返回对象的引用感到困惑.
解决方法:
如果您真正想做的就是分配一个大小合适的原始内存区域并将其返回(即使它实际上并不是一个正确初始化的PyObject类型),只需执行以下操作:
char *buf = (char *)PyMem_Malloc(size);
return (PyObject *)buf;
不知道这是否有用,但它会编译并获得一个指向原始内存缓冲区的指针,该内存缓冲区已被强制转换为PyObject指针.
(这不是你的问题,但如果你真的想要一个诚实的善良PyObject指针,你将不得不处理类似PyObject_New()函数的调用.这里的文档:http://docs.python.org/2/c-api/allocation.html)
内容总结
以上是互联网集市为您收集整理的Python的扩展(Malloc)全部内容,希望文章能够帮你解决Python的扩展(Malloc)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。