所有。 我想知道如何分配双指针给cuda。 我的代码如下。
------------这是结构---
typedef struct vertex vertex;
struct vertex {
unsigned int vertex_id;
float pagerank;
float pagerank_next;
unsigned int n_successors;
vertex ** successors;
};
------------这些是顶点----
vertex * vertices;
vertices = (vertex *)malloc(n_vertices * sizeof(vertex));
vertex *d_vertices;
cudaMalloc((void **)&d_vertices, n_vertices * sizeof(vertex));
---------这些是垂直的' succesors。这意味着双指针----
vertices[i].successors = (vertex**)malloc(vertices[i].n_successors*sizeof(vertex *));
cudaMalloc((void ***)&d_vertices[i].successors, vertices[i].n_successors * sizeof(vertex *)); // error part.
当我分配cudaMalloc((void ***)&d_vertices[i].successors, vertices[i].n_successors * sizeof(vertex *));
Visual Studio停止了...我猜指针错误。但我不知道如何在cuda中加倍指针分配。 请让我知道该代码中的错误。 非常感谢你。
最好的问候