#include <iostream>
#include <vector>
#include <cstddef>
const std::size_t HEIGHT = 10;
const std::size_t WIDTH = 10;
typedef std::vector<std::vector<int>> Matrix;
inline void set_bit(Matrix& matrix, std::size_t x, std::size_t y)
{
matrix[x][y] |= (0x80 >> ((x) % 8));
}
void print_screen(Matrix const& matrix)
{
std::vector<char>::size_type x, y;
for (y = 0; y < HEIGHT; y++)
{
for (x = 0; x < WIDTH/8+1; x++)
{
for (int i = 0x80; i != 0; i = (i >> 1))
{
try {
if ((matrix[x].at(y) & i) != 0)
std::cout << '*';
else
std::cout << ' ';
} catch(const std::exception& e) {
std::cout << e.what() << " failed\n";
}
}
}
std::cout << "\n\n";
}
}
int main()
{
//Matrix matrix;
std::vector<std::vector<int>> matrix (HEIGHT, std::vector<int>(WIDTH/8));
std::cout << "Outer matrix size: " << matrix.size() << "\n";
for(const auto& v : matrix) {
std::cout << "Inner size: " << v.size() << "\n";
}
std::vector<char>::size_type x, y;
for (x = 0; x < WIDTH; x++)
{
for (y = 0; y < HEIGHT; y++)
{
if (x == 0 || y == 0 || x == WIDTH-1 || y == HEIGHT-1)
{
set_bit(matrix, x, y);
}
}
}
print_screen(matrix);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3N0ZGRlZj4KIApjb25zdCBzdGQ6OnNpemVfdCBIRUlHSFQgPSAxMDsKY29uc3Qgc3RkOjpzaXplX3QgV0lEVEggPSAxMDsKIAp0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGludD4+IE1hdHJpeDsKIAppbmxpbmUgdm9pZCBzZXRfYml0KE1hdHJpeCYgbWF0cml4LCBzdGQ6OnNpemVfdCB4LCBzdGQ6OnNpemVfdCB5KQp7CiAgICBtYXRyaXhbeF1beV0gfD0gKDB4ODAgPj4gKCh4KSAlIDgpKTsKfQogCnZvaWQgcHJpbnRfc2NyZWVuKE1hdHJpeCBjb25zdCYgbWF0cml4KQp7CiAgICBzdGQ6OnZlY3RvcjxjaGFyPjo6c2l6ZV90eXBlIHgsIHk7CiAKICAgIGZvciAoeSA9IDA7IHkgPCBIRUlHSFQ7IHkrKykKICAgIHsKICAgICAgICBmb3IgKHggPSAwOyB4IDwgV0lEVEgvOCsxOyB4KyspCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGludCBpID0gMHg4MDsgaSAhPSAwOyBpID0gKGkgPj4gMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKChtYXRyaXhbeF0uYXQoeSkgJiBpKSAhPSAwKQogICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgJyonOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICcgJzsKICAgICAgICAgICAgICAgIH0gY2F0Y2goY29uc3Qgc3RkOjpleGNlcHRpb24mIGUpIHsKICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgZS53aGF0KCkgPDwgIiBmYWlsZWRcbiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiXG5cbiI7CiAgICB9Cn0KIAppbnQgbWFpbigpCnsKICAgIC8vTWF0cml4IG1hdHJpeDsKIAogICAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8aW50Pj4gbWF0cml4IChIRUlHSFQsIHN0ZDo6dmVjdG9yPGludD4oV0lEVEgvOCkpOwogICAgc3RkOjpjb3V0IDw8ICJPdXRlciBtYXRyaXggc2l6ZTogIiA8PCBtYXRyaXguc2l6ZSgpIDw8ICJcbiI7CiAgICBmb3IoY29uc3QgYXV0byYgdiA6IG1hdHJpeCkgewogICAgICAgIHN0ZDo6Y291dCA8PCAiSW5uZXIgc2l6ZTogIiA8PCB2LnNpemUoKSA8PCAiXG4iOwogICAgfQogCiAgICBzdGQ6OnZlY3RvcjxjaGFyPjo6c2l6ZV90eXBlIHgsIHk7CiAKICAgIGZvciAoeCA9IDA7IHggPCBXSURUSDsgeCsrKQogICAgewogICAgICAgIGZvciAoeSA9IDA7IHkgPCBIRUlHSFQ7IHkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmICh4ID09IDAgfHwgeSA9PSAwIHx8IHggPT0gV0lEVEgtMSB8fCB5ID09IEhFSUdIVC0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZXRfYml0KG1hdHJpeCwgeCwgeSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAKICAgIHByaW50X3NjcmVlbihtYXRyaXgpOwp9
Outer matrix size: 10
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
Inner size: 1
* **
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
vector::_M_range_check failed
*** Error in `./prog': double free or corruption (!prev): 0x0973a0b8 ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x75e72)[0xb754de72]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x76bb0)[0xb754ebb0]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb773082f]
./prog[0x8048dc6]
./prog[0x8048aec]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf5)[0xb74f18f5]
./prog[0x8048b81]
======= Memory map: ========
08048000-0804a000 r-xp 00000000 08:03 1295705 /home/MdFoSm/prog
0804a000-0804b000 rw-p 00001000 08:03 1295705 /home/MdFoSm/prog
0973a000-0975b000 rw-p 00000000 00:00 0 [heap]
b74d6000-b74d8000 rw-p 00000000 00:00 0
b74d8000-b7681000 r-xp 00000000 08:03 1303839 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7681000-b7682000 ---p 001a9000 08:03 1303839 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7682000-b7684000 r--p 001a9000 08:03 1303839 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7684000-b7685000 rw-p 001ab000 08:03 1303839 /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7685000-b7688000 rw-p 00000000 00:00 0
b7688000-b76a3000 r-xp 00000000 08:03 1303883 /lib/i386-linux-gnu/libgcc_s.so.1
b76a3000-b76a4000 rw-p 0001a000 08:03 1303883 /lib/i386-linux-gnu/libgcc_s.so.1
b76a4000-b76a5000 rw-p 00000000 00:00 0
b76a5000-b76e6000 r-xp 00000000 08:03 1303836 /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b76e6000-b76e7000 r--p 00040000 08:03 1303836 /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b76e7000-b76e8000 rw-p 00041000 08:03 1303836 /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b76e8000-b77c4000 r-xp 00000000 08:03 1345926 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77c4000-b77c5000 ---p 000dc000 08:03 1345926 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77c5000-b77c9000 r--p 000dc000 08:03 1345926 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77c9000-b77ca000 rw-p 000e0000 08:03 1345926 /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77ca000-b77d1000 rw-p 00000000 00:00 0
b77d3000-b77d7000 rw-p 00000000 00:00 0
b77d7000-b77d8000 r-xp 00000000 00:00 0 [vdso]
b77d8000-b77f7000 r-xp 00000000 08:03 1303796 /lib/i386-linux-gnu/ld-2.17.so
b77f7000-b77f8000 r--p 0001f000 08:03 1303796 /lib/i386-linux-gnu/ld-2.17.so
b77f8000-b77f9000 rw-p 00020000 08:03 1303796 /lib/i386-linux-gnu/ld-2.17.so
bfd21000-bfd36000 rw-p 00000000 00:00 0 [stack]