python - SWIG python 初始化指向 NULL 的指针

标签 python c pointers swig

在处理 SWIG 模块时,是否可以从 python 端将 ptr 初始化为 NULL?

例如,假设我在 swig 模块 m (_m.so) 中包装了一个结构体 track_t,我可以从 python 创建一个指向该结构体的指针,如下所示:

import m

track = m.track_t()

这只会在适当的包装函数中为我分配一个 track_t。

不过,我希望能够实现以下目标:

track_t *track = NULL;

但是在 python 而不是 C,例如从 python 端初始化一个指向 NULL 的指针

我需要这样做,因为这是哈希表 C 实现的要求,我正在使用新的哈希表以 NULL 指针开头

我可以编写一个辅助函数,例如 track_t* create_null_track(),它返回一个 NULL 指针,但我认为可能有更简单的方法吗?

编辑:

我可以确认辅助函数有效,但我希望有一个内置的方法来执行此操作,因为要求 NULL 指针似乎是常见的要求

辅助函数非常简单:

track_t* create_null_track(void)
{
    return NULL;
}

不确定函数中指定的返回类型信息是否必要,因此更通用的方法可能是:

void* get_null(void)
{
    return NULL;
}

也许吧?

最佳答案

只需使用 python 中的 None 来表示空值。

关于python - SWIG python 初始化指向 NULL 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19726689/

相关文章:

python - 如何在 python 中编写带有可选输出参数的函数

c - 从包含整数的文件中读取一行

c - 当我们调用 (char*)malloc(sizeof(char)) 为字符串分配内存时,它是否被初始化?如何初始化?

c - 用0-99的随机数填充C中的二维数组,然后按降序排序

python - 映射/减少计数的两阶段排序

python - 时间序列 - 相关性和滞后时间

Python 子进程 : Issues capturing error where part of command fail when piped together

c - 反对 static int 指针的参数

c++ - 将 int 自己的地址分配给它的值

c - C 上的 Runge-Kutta 积分