提问者:小点点

管理Arduino上的对象数组问题


我正在尝试管理一个对象数组(这是一个简化版本)。当我静态地创建对象时,它们会正确地显示。当我动态构建它们时,结果就好像我没有初始化它们一样。下面的测试显示了这两个结果。有什么想法吗?

class Student {
public:
    String name;
    int rollno;

    Student() {}

    Student(String x, int y) {
        name = x;
        rollno = y;
    }

    void printDetails() {
        Serial.print(rollno); Serial.print(" - "); Serial.println(name);
    }
};

    //declare array with specific size
    Student statics[5];
    Student dynamics[5];

void setup()
{
    //Open serial port at 115200 baud
    Serial.begin(115200);

    //Wait until the serial port has opened
    while (!Serial) delay(1);
    Serial.println("setup static");
    //assign objects
    statics[0] = Student("Ram", 5);
    statics[1] = Student("Alex", 1);
    statics[2] = Student("Lesha", 4);
    statics[3] = Student("Emily", 3);
    statics[4] = Student("Anita", 2);

    for (int i = 0; i < 5; i++) {
        statics[i].printDetails();
    }
    Serial.println("setup dynamic");

    //assign objects
    for (int i = 0; i > sizeof(dynamics); i++) {
        String name = "Name-" + String(i);
        dynamics[i] = Student(name, i);
    }
    for (int i = 0; i < 5; i++) {
        dynamics[i].printDetails();
    }
}

// Add the main program code into the continuous loop() function
void loop()
{
}

共1个答案

匿名用户

您必须将for循环中的/code>运算符替换为

 //assign objects
for (int i = 0; i < sizeof(dynamics); i++) {
    String name = "Name-" + String(i);
    dynamics[i] = Student(name, i);
}