zippo[0] это адрес первого элемента в подмассиве ({2, 4}) т.е 2.
#include <stdio.h>
int main()
{
int a[4] = {1,2,3,4};
int *p = (int*)&p;
printf("%p, %p\n", a, &a);
printf("%p, %p\n", p, &p);
}#include <stdio.h>
int main()
{
int *a1 = (int*)&a1;
int *a2 = a1;
printf("%p, %p\n", a1, &a1);
printf("%p, %p\n", a2, &a2);
}
Каким-нибудь process explorer можно посмотреть сколько хендлов ваша программа имеет, если это число растет, надо разбираться, какие из виндовых объектов вы правильно не уничтожаете. Вроде бы все битмапы вы корректно уничтожаете через DeleteObject, возможно ошибка в другом коде.
Можно еще поробовать вашу программу подебажить. Вот когда окно вылезает, какой ваш код выполняется? Подключитесь к вашему процессу visual studio и смотрите. Или добавьте отладочный вывод, чтобы понять, какая функция начинает выполнятся но не заканчивает. Это подскажет вам, какие объекты вы не удалили правильно.
std::ranges::advance будет внутри циклом. Нет, https://en.cppreference.com/w/cpp/iterator/ranges/...:However, if I additionally models std::random_access_iterator, or S models std::sized_sentinel_for, or I and S model std::assignable_from, complexity is constant.