#include <iostream>
void main() {
void* ptr = malloc(3);
int *b = static_cast<int*>(ptr);
*b = 2147483647;
std::cout << *b; // 2147483647
}
У меня есть 3 байта пам'яти от malloc и sizeof(int*) показывает 4, каким образом я поместил int в 3 байта без ошибок? Компилятор MS Visual C++
Ваш код содержит неопределённое поведение (UB) - запись за границы выделенной памяти. От компилятора не требуется уведомлять о подобного рода ошибках. Подробнее об UB можете почитать в соответствующем вопросе: Разница между неопределённым, неспецифицированным и зависимым от реализации поведением
Этот код вызывает неопределенное поведение.
Ошибка не гарантируется, и эффект может быть любым (в том числе программа может работать как будто ничего не произошло, а может неожиданно сломаться).
Виртуальный выделенный сервер (VDS) становится отличным выбором
До сих пор везде использовал size_t, считая что это целочисленный тип, который адаптируется под разрядность операционной системы (4 байта - для...
Все источники говорят что, типы sigaction, sigset_t находятся в signalh Эта строчка у меня в самом верху присутствует:
Делаю колбэк на изменения размеров окна, и реагирования на изменение размера рендерераХорошо, объявил typedef, класс окна и класс рендерера...
После вставки носителя я получу сначала событие dbch_devicetype с deviceinterface, а затем с volume и если накопитель вставлялся 1, то очевидно оба события будут...