我刚刚开始使用 C,正在尝试为我的 python 制作一个后端。目前,我有一个繁琐的系统,从 python 编写巨大的输入文件(至少 10^6 个浮点数),然后初始化 C(它还必须加载大量其他数据),运行 C 直到终止,接收其输出只需使用新的输入数组再次重新初始化它。
我不确定环顾四周在概念上是否可行,但我希望能够将 C 定向到 numpy 数组的内存地址,并像使用 C 生成的数组一样使用它。目的是让 python 初始化 C,构建其第一个数组,运行 C 代码,直到准备好下一个数组,然后由 python 生成该数组。
这是我编写的一些虚拟代码,用于尝试让 C 读取 numpy 数组。目前 C 只是有一个分段错误,我不确定是否是因为我不擅长 C,它不喜欢读取 numpy 数组或两者兼而有之。
前端.py
array_interface 来自这里。
#! /usr/bin/python
import numpy as np
import subprocess as sp
ray = np.array([x*3.14 for x in range(10)])
addr = ray.__array_interface__['data'][0]
pro = sp.Popen(['./back', hex(addr)])
print pro.communicate()[0]
print ray[:5]
quit()
Run Code Online (Sandbox Code Playgroud)
后退c
#include <stdio.h>
#include <stdlib.h>
int main(char *argv[])
{
float *addr; …Run Code Online (Sandbox Code Playgroud)