我正在使用IAR EMBEDDED WORK BENCH开发C ++。从"%s"
调用函数时我遇到了问题。
我的程序用于从米到米的协议中获取数据。
在我的程序中,我已经声明了一个大小为255的main()
数组。但来自米的数据大于255.是否有可能增加unsigned char
数组的大小?现在我已经声明了另一个无符号字符数组,但它并没有解决我的问题。我也经历了这个link,但我无法得到任何帮助。我差不多花了一个月的时间,这就是为什么我选择在这里发帖提出帮助的原因。
任何帮助都将受到高度赞赏。
答案 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,它们可以帮助您(如果需要,仍然不要忘记复制数据)