Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Roman1984
2022-11-29 18:09:00

Все потому что массив это по сути указатель на адрес первого элемента и вы обращаетесь к адресу, в котором может содержаться все что угодно.

cg_shura
2022-11-07 17:21:09

Пользуйтесь статическим анализатором, они такое обнаруживают.

Krepton85
2022-07-08 23:53:30

Сейчас столкнулся с одной своей ошибкой которую отладить не так то просто было. Почему компилятор не проверяет на наличие ошибок, если присвоить значение индексу массива, который не в его диапазона?

char model[8];//8 - размер массива в байтах

bool test = 0;
void setup() {
  // put your setup code here, to run once:
Serial.begin(115200);
model[8] = 'n';//ошибка, индекс массива начинается с нуля и заканчиваться должен на 7
Serial.print(F("test = "));
Serial.println(test);

}

void loop() {
  // put your main code here, to run repeatedly:
Serial.print(F("test = "));
Serial.println(test);
delay(1000);
}

Воспроизвести эту ошибку в этом примере не получилось, но случилось следующее, в процессе работы моего огромного скетча на Raspberry Pi Pico , булевая переменная test, начала неожиданно принимать значение = 10. smile  Потратил кучу времени что бы найти в каком месте скетча это может происходить, хорошо хоть вспомнил, что недавно делал и по горячим следам нашел виновника. big_smile

Підвал форуму