增加unsigned char数组的大小

时间:2016-12-03 11:07:28

标签: c++ arrays

我正在使用IAR EMBEDDED WORK BENCH开发C ++。从"%s"调用函数时我遇到了问题。

我的程序用于从米到米的协议中获取数据。 在我的程序中,我已经声明了一个大小为255的main()数组。但来自米的数据大于255.是否有可能增加unsigned char数组的大小?现在我已经声明了另一个无符号字符数组,但它并没有解决我的问题。我也经历了这个link,但我无法得到任何帮助。我差不多花了一个月的时间,这就是为什么我选择在这里发帖提出帮助的原因。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

  

在我的程序中,我声明了一个大小为255的unsigned char数组   我假设你做了类似的事情:

char array[255];

您无法扩展此变量,因为它在堆栈上分配。

但你可以使用堆:

char* array = new char[255];

这可以保留您的变量并通过另一个新的呼叫更改它的大小(如果您想延长不要忘记复制旧数据,不要忘记删除旧阵列。)

或者,如果可以(对目标了解不多),只需使用STL vector

std::vector<char> array(255);

同样:

std::vector<char> array;
array.reserve(255);

此容器有一些成员函数,例如resize,它们可以帮助您(如果需要,仍然不要忘记复制数据)