L'opérateur new pour Arduino

J'ai dit (en particulier dans les répondre à C++ Standard Library sur un Arduino, et dans le Débordement de la Pile question Chaîne C++ et Arduino Chaîne. Comment les combiner?)) que le compilateur Arduino ne pas mettre en œuvre la new de l'opérateur. Cependant, j'ai écrit un programme pour l'Arduino (dans l'IDE Arduino) qui l'utilise, et il fonctionne parfaitement.

void setup() {
    Serial.begin(9600);
}

void loop() {
    char* array;
    char c;
    unsigned arraySize;

    Serial.write("Enter a 1 digit number.\n");

    do {
        c = Serial.read();
    } while(c < '0' or c > '9');
    arraySize = c-'0';

    Serial.write("You wrote ");
    Serial.write(c);
    Serial.write(".\n");
    Serial.write("Now enter ");
    Serial.write(c);
    Serial.write(" lower-case letters.\n");

    array = new char[arraySize];

    for (unsigned i = 0; i < arraySize;) {
        array[i] = Serial.read();
        if (array[i] >= 'a' and array[i] <= 'z')
            i++;
    }

    Serial.write("You entered: ");

    for (unsigned i = 0; i < arraySize; i++) {
        Serial.write(array[i]);
        Serial.write(" ");
    }
    Serial.write("\n");
}

Voici un exemple de sortie de démontrer ses fonctionnalités:

Enter a 1 digit number.
You wrote 5.
Now enter 5 lower-case letters.
You entered: h e l l o
Enter a 1 digit number.
You wrote 9.
Now enter 9 lower-case letters.
You entered: w a s s u p m a n
Enter a 1 digit number.
You wrote 9.
Now enter 9 lower-case letters.
You entered: h o w y a d o i n
Enter a 1 digit number.
You wrote 4.
Now enter 4 lower-case letters.
You entered: c o o l
Enter a 1 digit number.
You wrote 7.
Now enter 7 lower-case letters.
You entered: i t w o r k s
Enter a 1 digit number.

Alors, pourquoi ne j'entends ça? Ces gens ont tort, ou dois-je simplement mal comprendre leur signification?

Comme on dit dans l'armée, si la carte ne correspond pas au terrain, la confiance du terrain.

OriginalL'auteur Michael Dorst | 2013-04-29