交换两个数组内容的不同两种方式有什么区别吗? (时间消耗除外)
memcpy(cells,tmp_cells,sizeof(t_speed)*params.ny*params.nx);
t_speed* temp_ptr = *cells_add;
*cells_add = *tmp_cells_add;
*tmp_cells_add = temp_ptr;
其中
t_speed* cells = *cells_add;
t_speed* tmp_cells = *tmp_cells_add;
指针交换是否存在任何潜在威胁?
编辑:我唯一想做的就是用tmp_cells覆盖单元格:)
谢谢!
答案 0 :(得分:3)
是的,不同之处在于,如果除了您正在交换的数组之外还有对此数组的任何其他引用,它们将指向不同的数据(在memcpy
情况下)或相同的数据(在指针交换的情况下)。你想做什么取决于你想要的行为。
请注意,您的memcpy
案件会覆盖cells
;没有交换。