我有两个类型Region
的数组,大小都是1000,并且在循环的每次迭代中我想交换它们中的两个(通过交换它们的内存地址)。我希望这会奏效:
Region *swap = (Region*)myRegions;
myRegionsLast = myRegions;
myRegions = (Region[1000])swap;
第一行看起来很好。第二行和第三行是无效分配,因为您显然无法重新分配该类型。第三行也无效,因为您无法转换为类型(Region [1000])
。显然,如果我可以提供帮助,我不想分配全新的区域[1000]。有人可以帮我完成我想要的吗?
答案 0 :(得分:6)
这是因为您无法一次分配整个数组。但是,您可以指定一个指针:
Region reg1[1000], reg2[1000];
Region *myRegionsLast = reg1;
Region *myRegions = reg2;
现在您的交换例程无需进一步修改即可运行。
你也可以一次交换数组一个元素,但它会涉及更多的数据复制。
答案 1 :(得分:0)
如何只创建Region类型的内容变量并迭代它......
for(int i=0; i<1000; i++)
{
tempRegionTypeVariable = myRegionsLast[i];
myRegionsLast[i] = myRegions[i];
myRegions[i] = tempRegionTypeVariable;
}
希望这会有所帮助.. 这里“tempRegionTypeVariable”只是一个临时变量或一个Object。不是数组..
答案 2 :(得分:0)
其他有效答案在评论中发布: