附加到C ++中的字节数组

cod*_*g82 1 c++ avr

我在C ++中有两个数组,我想在另一个数组的末尾附加一个:

char byte1[] = {0x00};
char byte2[] = {0x01};
Run Code Online (Sandbox Code Playgroud)

附加这两个应产生{0x00,0x01}。我该怎么做?使用System.arraycopy()在Java中足够简单,但是当我为微控制器编码时,我不确定哪个库可以帮助我在C ++ / C中完成此任务。

Joh*_*0te 5

如果您使用的是C,则可以执行以下操作:

//Whatever sizes your stating arrays are.
const int S_ARR1 = 3;
const int S_ARR2 = 2;

//Create buffer that can hold both.
char combined[S_ARR1 + S_arr2];

//Copy arrays in individually.
memcpy(combined, byte1, S_ARR1);
memcpy(combined + S_ARR1, byte2, S_ARR2);
Run Code Online (Sandbox Code Playgroud)

如果要使用C ++,请不要首先使用字节数组。使用std :: vector,因为它充当可以跟踪其自身元素数量的数组,因此您感觉更像是在Java世界中:)

关于嵌入式C ++矢量内存的一些警告:

您在微控制器中,随着std :: vector基于当前大小的倍数增长,可能会浪费大量内存。越多,您浪费的时间就越多。话虽如此,这是一个很棒的课程,只要您知道它如何处理内存,它就是一个不错的选择。