首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >arduino,返回字符数组的函数

arduino,返回字符数组的函数
EN

Stack Overflow用户
提问于 2015-01-11 22:27:59
回答 1查看 20.1K关注 0票数 1
代码语言:javascript
复制
_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; where int cmOne, cmTwo, cmThree, cmFour

在循环中,我调用:

代码语言:javascript
复制
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]);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-11 22:29:50

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

代码语言:javascript
复制
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];

假设get data只是将一个字符串"ABC"放入result数组中,如下所示

代码语言:javascript
复制
void getData(char *dest)
{
    dest[0] = 'A';
    dest[1] = 'B';
    dest[2] = 'C';
    dest[3] = '\0';
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27888152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档