无法在跳跃中为数组赋值
Unable to assign value to array in prange
我正在尝试将每个数组都分类为一个单独的数组。但当我尝试为其赋值时,会出现错误:错误:从"int"到"int*"的转换无效[-fpermission]这里的代码:
cdef void test(int size,int num,int len,int height,int *f,int n_f):
cdef int k
cdef Node* tree_root
cdef int i
cdef int *a
for i in prange(num,nogil=True,num_threads=2):
a=<int *>malloc(sizeof(int)*size)
srand(rand())
#a[0]=rand()%len #if uncommented gives error
with gil:
for k in range(size):#if uncommented gives error
a[k]=rand()%len
无法理解为什么不允许分配??
这对我来说似乎是个bug。我可以在Ubuntu 14.04.4
上用cython
版本0.20.1post0
复制它。它是由%
操作引起的。如果删除这两种情况,它应该可以正常工作。
如果我用cython
编译上面的代码,生成的C代码包含以下行
int * __pyx_parallel_temp1 = 1;
由于int
被分配给int*
。
我假设您使用g++
进行编译,在这种情况下会引发错误。使用gcc
只会在我的系统上发出警告,这应该很好。或者,您可以将标志-fpermissive
传递给g++
以使其工作。
因此,以下对我有效:
cython code.pxy
g++ code.c -c `pkg-config --libs --cflags python2` -fpermissive
正如:
cython code.pxy
gcc code.c -c `pkg-config --libs --cflags python2`
相关文章:
- 在 Arduino 中为 2D 指针数组赋值
- 我无法为 2D 数组赋值
- 如何在C++中初始化值,然后稍后为uint32_t数组赋值
- 使用 C++ shell 为 C++ 中的 2 D 动态数组赋值,控制台不会打印出任何内容
- 为两个动态数组赋值
- 在类的构造函数中为常量动态大小的数组赋值
- 为结构灵活数组赋值
- 如何在opencv中为三维数组赋值
- 如何从主函数为对象数组赋值
- 数组赋值无法使用指针语法
- C++类中的静态数组赋值
- 多维字符串数组赋值 C++
- 错误:从初始值设定项列表向数组赋值;在ubuntu 1004上工作但在14.04上不工作的代码
- 用于循环数组赋值的C++.正在返回垃圾邮件
- 多维数组赋值
- 无法在c++中为全局数组赋值
- C++程序在为指针的2D数组赋值后崩溃
- 给指针数组赋值
- c++将整型数组赋值给大小相同的空整型数组
- 将数组赋值给派生对象