while(vector.size() < 5)
show(ObjectsBuffer objectsBuffer, int selectedObjectIndex)
принимала аргумент - буфер, и видимо я пытался получить не копию буфера, уже копии буфера, решением было передать ссылку на буфер: show(std::vector<LevelObject> &buffer, int selectedObjectIndex)
, и вызов функции стал таким:ObjectEditorUI::show(objectsBuffer.getReferenceBuffer(), selectedObjectIndex)
(getReferenceBuffer вверху). Похоже я оеально упустил слишком много деталей, всем спасибо что тут неправильно?
#include <GyverOLED.h>
#include <SPI.h>
#include <MFRC522.h>
// контакты
#define SS_PIN 10
#define RST_PIN 9
// Создание экземпляра объекта MFRC522
MFRC522 mfrc522(SS_PIN, RST_PIN); // Создание экземпляра MFRC522
GyverOLED<SSH1106_128x64> oled;
void setup() {
Serial.begin(9600);
SPI.begin();
oled.init();
oled.setScale(2);
oled.print("CARD TERMINAL");
// инициализация MFRC522
mfrc522.PCD_Init();
// выводим номер версии прошивки ридера
}
void loop() {
// Ожидание
Serial.print("UID = ");
view_data(mfrc522.uid.uidByte, mfrc522.uid.size);
Serial.println();
Serial.print("type = ");
byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
Serial.print(mfrc522.PICC_GetTypeName(piccType));
Serial.println();
delay(1000);
}
I looked it up. I believe this was introduced with C99, and apparently the C99 rationale is defect. It has comments for 5.1.2.2.1 Program startup, then labels the next chapter 5.1.2.3 Program execution. It should have been 5.1.2.2. As a consequence of this, the rationale for Program termination that should have been in the real chapter 5.1.2.3, has gone missing in action. Thus, main allows no return code in C99 and there exists no rational reason why.