0

交换两个数组内容的两种不同方式之间有什么区别吗?(时间消耗除外)

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 覆盖单元格:)

谢谢!

4

1 回答 1

3

是的,不同之处在于,如果除了您要交换的那些之外,还有对该数组的任何其他引用,它们将指向不同的数据(在这种memcpy情况下)或指向相同的数据(在指针交换的情况下)。你想做什么取决于你想要的行为。

请注意,您的memcpy案例只是覆盖cells; 没有交换。

于 2013-10-16T23:02:51.990 回答