Наткнулся на интересную особенность при инициализации массива int.
int arr1[10];
int main() {
int arr2[10];
return 0;
}
Все значения arr1
равны 0, а все значения arr2
значениями -858993460 ( мое предположение, что это просто неинициализированная память)
Вопрос такой: почему снаружи main
компилятор делает что-то типа этого int arr1[10] = {};
, а внутри не делает ничего?
Таковы правила инициализации всех объектов со статическим классом хранения. И в С, и в С++ они подвергаются нулевой инициализации, если вы не предоставили явного инициализатора.
В С++ процесс инициализации существенно более сложен, чем в С, т.к. С++ поддерживает динамическую инициализацию, но к вашему случаю это не относится.
Автоматические переменные тривиальных типов не подвергаются никакой инициализации, если вы явно не укажете инициализатор.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть одноплатный компьютер для него написал код с графикой использую qtКод писался на Windows как перенести его на Linux, SDK qt на Linux установил но как...
Предположим, что у меня есть поток для записи в файл ofstream
Проблема заключается в том, что код спокойно выполняется на онлайн gcc компиляторах и MSVS, а у меня - нетОшибку видит в строках while (string[i] != '\0') и ошибкуerror:...
У меня возник вопрос, как я могу удалить блоки через datasetЧтобы каждый блок удалялся по отдельности по клику