【问题标题】:How to increment array by pointing to address using integer [closed]如何通过使用整数指向地址来增加数组[关闭]
【发布时间】:2019-02-18 22:18:42
【问题描述】:

我编写了一个函数,我希望读取发射器的测量值并将它们存储到一个数组中。

我使用整数指向数组,因为在这种情况下 for 循环不适合。但是,它不会将读数存储在数组中。 代码如下:

void readTemperature()
{
    readings[count] = tx.read();
    count++;
    lcd.printf("%.2f\n",readings[0]);        
}

例如 27.60

【问题讨论】:

  • tx.read() 返回什么?
  • 您需要发布更多代码。
  • tx.read() 返回一个变送器读数,例如 27.60,读数是一个初始化为最多存储 100 个变送器读数的数组
  • 如何避免readings 数组溢出?我建议使用vector
  • count有什么值?它的值是否为 0?

标签: c++ arrays oop pointers


【解决方案1】:

假设

  • readings 是指向浮点数(或浮点数数组)的指针,
  • readings 已正确初始化,
  • count 被初始化为 0,
  • 问题在于最后的输出与读取的值不匹配;

然后,你需要显示最后读取的值,因为在你的代码中你总是显示相同的第一个值:

void readTemperature()
{
    readings[count] = tx.read();
    lcd.printf("%.2f\n",readings[count]);   // not [0]
    count++;
}

此外,您应该检查 count 是否小于分配的数组的大小,以避免任何内存损坏的风险。

注意: 术语“使用整数指向数组”是模棱两可且令人困惑的。您可以选择不那么模棱两可的“通过索引指针访问数组”或类似的东西。

【讨论】:

  • 成功了。非常感谢。
猜你喜欢
  • 2012-10-23
  • 1970-01-01
  • 2015-09-01
  • 2022-09-23
  • 2012-10-18
  • 2012-11-09
  • 1970-01-01
  • 2013-12-31
  • 2016-08-01
相关资源
最近更新 更多