如何将int [50]放在int [100]中?

时间:2013-09-23 06:53:58

标签: c

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

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];

2 个答案:

答案 0 :(得分:16)

memcpy(&buf1[1], &buf0[0], sizeof buf0);

答案 1 :(得分:0)

为避免复制,您最初可以动态分配N个元素,并将realloc分配给2N。如果你必须添加一个前面的元素,环形/循环缓冲区实现可以用来逃避复制。