arduino,函数返回char数组

时间:2015-01-11 14:27:59

标签: c++ c arduino

_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 getData(),其中char output[50] = "1: " + cmOne + " 2: " + cmTwo + " 3: " + cmThree + " 4: " + cmFour;返回int cmOne, cmTwo, cmThree, cmFour

在循环中,我打电话:

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]);

我知道我的数据类型,分配等方面有问题但是如果做得最好,还有什么建议吗?

1 个答案:

答案 0 :(得分:4)

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

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[A_BIGGER_SIZE];

假设获取数据只是将"ABC"数组中的字符串result放在它看起来像

void getData(char *dest)
{
    dest[0] = 'A';
    dest[1] = 'B';
    dest[2] = 'C';
    dest[3] = '\0';
}