没有memcpy()通过引用分配数组值?

时间:2019-02-20 05:14:30

标签: c++

让我们说我有一个数组,其中包含称为计算机的结构;每当我尝试将元素分配给数组时,它都会使用“ memcpy()”函数,但是我无权访问此函数或任何其他库。如何在不使用memcpy()的情况下通过引用将元素分配给此数组?

如果我可以访问memcpy(),这将是我的代码

struct Computer{
    int val;
}; 
int main(){
    int i = 0;
    Computer list[10];

    Computer *p;
    p->val = 5; 
    list[i] = *p; 

}

1 个答案:

答案 0 :(得分:0)

下面是Computer的数组,按值或地址(如果您愿意)。拥有Computer* const数组基本上与引用相同,因为它们无法重新分配:

struct Computer {
    int val;
    Computer() = delete;
    Computer(int a) : val(a) {}
};

int main() {
    Computer byValue[] = {
        Computer(1),
        Computer(2),
        Computer(3)
    };

    Computer c1(1);
    Computer c2(2);
    Computer c3(3);
    Computer* const byAddress[] = {
        &c1,
        &c2,
        &c3
    };

    return 0;
}

引用数组在C ++中是非法的:Why are arrays of references illegal?