1

有没有办法在不使用循环的情况下将一个数组放入另一个数组中?这个循环感觉有点奇怪:

uint8_t buf0[50];
populate_buf( buf0 );
uint8_t buf1[100];
buf1[0] = 'S';
for ( uint8_t i = 0; i < 50; i++ )
    buf1[1+i] = buf0[i];
4

2 回答 2

16
memcpy(&buf1[1], &buf0[0], sizeof buf0);
于 2013-09-23T06:57:35.350 回答
0

为了避免复制,您最初可以动态分配 N 个元素并分配realloc给 2N 个。如果您无论如何都必须添加一个前端元素,那么环形/循环缓冲区实现可能对摆脱复制很有用。

于 2015-09-28T14:21:40.057 回答