假设我有一个简单的函数,它将一个指向整数的指针作为输入。如何更改原始整数值?
我的想法如下:
cdef myFunc(int n, int *nnz):
nnz_int = <uintptr_t>nnz
nnz_int = 0
for i in range(0, n):
nnz_int += n
但是经过反思,我想我最初只将 nnz 的值转换为nnz_int,然后更改nnz_int,而不更改原始的nnz。我如何实现这一目标?
答案 0 :(得分:1)
来自Cython docs:
请注意,Cython使用数组访问进行指针解除引用,因为
*x
不是有效的Python语法,而x[0]
是。
所以这应该有效:
cdef myFunc(int n, int *nnz):
for i in range(0, n):
nnz[0] += n
通过将n
添加到指向的值n
次,不确定您要实现的目标;为什么不简单地将n*n
添加到其中一次?