c++ - 在 C++ 中附加到字节数组

标签 c++ avr

我在 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/

相关文章:

C++ 宏代码 - 将(任意大小的)显式整数转换为指针类型

c - 在类似于 Arduino 的 AVR 微 Controller 中实现引脚号

c++ - AVR Library/Snippit 跟踪日期

c++ - 创建跨平台 OpenGL 离屏上下文

c++ - 链接器提示 vtable 上的 undefined reference

c++ - CreateThread 调用错误

optimization - 为什么这段代码是由 avr-gcc 生成的,它是如何工作的?

c++ - std::map 和 'fat' 值对象

Mac 上的 C++ 音乐播放

c - AVR 编程 - 如何在 C 中读取连续的按钮按下