当前位置:  开发笔记 > 编程语言 > 正文

使用C++将结构复制到数组中

如何解决《使用C++将结构复制到数组中》经验,为你挑选了1个好方法。

我有一个以下类型的结构

typedef struct Edge
{
    int first;
    int second;

}Edge;

我在我的main函数中实例化并复制到数组中

Edge h_edges[NUM_EDGES];
for (int i = 0; i < NUM_VERTICES; ++i)
    {
        Edge* e = (Edge*)malloc(sizeof(Edge));
        e->first = (rand() % (NUM_VERTICES+1));
        e->second = (rand() % (NUM_VERTICES+1));
        memcpy(h_edges[i], e, sizeof(e));
    }

我一直遇到以下错误.

src/main.cu(28): error: no suitable conversion function from "Edge" to "void *" exists  

第28行是memcpy发生的行.任何帮助赞赏.



1> Bo Persson..:

您根本不需要使用malloc或根本不需要memcpy.你可以:

Edge h_edges[NUM_EDGES];
for (int i = 0; i < NUM_VERTICES; ++i)   // or should this be NUM_EDGES??
{
    h_edges[i].first = (rand() % (NUM_VERTICES+1));
    h_edges[i].second = (rand() % (NUM_VERTICES+1));
}

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有