C++ arduino,返回字符数组的函数

C++ arduino,返回字符数组的函数,c++,c,arduino,C++,C,Arduino,简而言之,我有一个函数char getData,它返回char output[50]=1:+cmOne+2:+cmTwo+3:+cmThree+4:+cmFour;其中int cmOne,cmTwo,cmThree,cmFour 在循环中,我调用: _10_11.ino: In function 'void loop()': _10_11:73: error: initializer fails to determine size of 'results' _10_11.ino: In func

简而言之,我有一个函数char getData,它返回char output[50]=1:+cmOne+2:+cmTwo+3:+cmThree+4:+cmFour;其中int cmOne,cmTwo,cmThree,cmFour

在循环中,我调用:

_10_11.ino: In function 'void loop()':
_10_11:73: error: initializer fails to determine size of 'results'
_10_11.ino: In function 'char getData()':
_10_11:160: error: invalid operands of types 'const char*' and 'const char [5]' to binary 'operator+'

我知道我在数据类型、赋值等方面有错误,但我不知道如何做到最好,有什么建议吗???

这是不可能的,创建一个固定大小的数组,并将其作为指针传递给函数,然后在函数中初始化它

char results[] = getData();

    client.println("1: %i", results[0]);
    client.println("2: %i", results[1]);
    client.println("3: %i", results[2]);
    client.println("4: %i", results[3]);
当然,如果数组更大,只会产生char结果[A_bigger_SIZE]

假设get data只是将一个字符串ABC放入它看起来像的结果数组中

char results[4];

getData(results); /* the getData function should take a 'char *' paramenter */

client.println("1: %i", results[0]);
client.println("2: %i", results[1]);
client.println("3: %i", results[2]);
client.println("4: %i", results[3]);

这是不可能的,创建一个固定大小的数组,并将其作为指针传递给函数,然后在函数中初始化它

char results[] = getData();

    client.println("1: %i", results[0]);
    client.println("2: %i", results[1]);
    client.println("3: %i", results[2]);
    client.println("4: %i", results[3]);
当然,如果数组更大,只会产生char结果[A_bigger_SIZE]

假设get data只是将一个字符串ABC放入它看起来像的结果数组中

char results[4];

getData(results); /* the getData function should take a 'char *' paramenter */

client.println("1: %i", results[0]);
client.println("2: %i", results[1]);
client.println("3: %i", results[2]);
client.println("4: %i", results[3]);

假设我将char results[4]设为全局,以便可以在循环外部访问/分配它,对吗?@Simon不,您应该在循环的相同范围内声明它。如果你想在其他函数中使用它,只需将它作为指向char*的指针传递,而它不能被分配到任何地方,你可以分配给它的元素。我是否正确地假设我会将char results[4]设为全局,这样就可以在循环外访问/分配它?@Simon不,你应该在循环的相同范围内声明它。如果您想在其他函数中使用它,只需将它作为指向char*的指针传递,并且不能在任何位置分配它,您可以分配给它的元素。请决定。这个问题是关于C++还是C++?这个问题是关于C++还是C++?