让我们说我有一个数组,其中包含称为计算机的结构;每当我尝试将元素分配给数组时,它都会使用“ memcpy()”函数,但是我无权访问此函数或任何其他库。如何在不使用memcpy()的情况下通过引用将元素分配给此数组?
如果我可以访问memcpy(),这将是我的代码
struct Computer{
int val;
};
int main(){
int i = 0;
Computer list[10];
Computer *p;
p->val = 5;
list[i] = *p;
}
答案 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?