我在 C++ 中有两个数组,我想将一个附加到另一个的末尾,这样:
char byte1[] = {0x00};
char byte2[] = {0x01};
附加这两个应该产生 {0x00, 0x01}。我该怎么做?在 Java 中使用 System.arraycopy() 非常简单,但我不确定哪个库可以帮助我在 C++/C 中完成此操作,因为我正在为微 Controller 编写代码。
最佳答案
如果您使用的是 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);
如果你想要 C++,首先不要使用字节数组。使用 std::vector,因为它充当一个数组,可以跟踪它自己的元素数量,这样您就可以感觉更像是在 java 世界中:)
关于嵌入式 C++ vector 内存的一点警告:
你在微 Controller 中,std::vector 会浪费大量内存,因为它会根据当前大小的倍数增长。里面的东西越多,你浪费的就越多。话虽如此,这是一个很棒的类(class),只要您知道它如何处理内存,它就是一个不错的选择。
关于c++ - 在 C++ 中附加到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11527249/