Figure** figure_colletion = new Figure * [this->collection_size];
figure_colletion
, к которому вы обрашаетесь в методе select_new_figure()
- это уже член класса, который вы нигде не выделили и ничем не заполнили.this->
перед каждым обращением к члену класса не обязательно. for (int dx = -1; dx <= 1; ++dx) {
for (int dy = -1; dy <= 1; ++dy) {
if (dx == 0 && dy == 0) continue;
int nx = (i + dx + height) % height;
int ny = (j + dy + SIZE) % SIZE;
neighbours += proc_states[iter][nx * SIZE + ny];
}
}
const int dx[8] = {0, 1, 1, 1, 0, -1, -1, -1};
const int dy[8] = { 1, 1, 0, -1, -1, -1, 0, 1};
...
for (int k = 0; k < 8; ++k) {
int nx = i + dx[k];
int ny = j + dy[k];
...
}
(i + dx + SIZE) % SIZE
есть лишний +SIZE
, ибо -1 % SIZE == -1
и чтобы для 0 предыдущее значение было SIZE-1 надо прибавить лишний SIZE под модулем. defineCode(std::cout << 13 << std::endl); // work
defineCode(stringLine);
заменяется просто на stringLine
, что есть бессмысленное выражение, вырезаемое еще на этапе компиляции. ++i
быстрее. Практически - нет, потому что компиляторы могут и то и другое соптимизировать в одни и те же ассемблерные инструкции в большинстве случаев. Исключение, если инкримент используется в выражении. Но тогда они не взаимозаменяемы. Еще может быть случай, если i какого-то странного типа и инкрименты перегружены и криво написаны. Или если оптимизация отключена при компиляции. Или у вас доисторический компилятор. (x1(t),y1(t))=(x1+vx1*t, y1+vy1*t)
(x1(t)-x2(t))^2+(y1(t)-y2(t))^2 = 4*r^2
.float t1 = (0.5 * Lxmax - (cords[i].x + r)) / cords[i].vx;
float t2 = (-0.5 * Lxmax - (cords[i].x - r)) / cords[i].vx;
Box() : Figure( (const bool[4][4]){
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}
}, "Box") {};
brick = (OBJECT*)realloc(brick, sizeof(*brick) * brickLength);
brick = new Object[brickLength];
delete[]
.std::vector<Object>
. (long long int*) calloc(len_s1, sizeof(int));
вы выделяете массив int на len_s1 элементов, а потом работаете с ним, как с массивом long long той же длины. Но long long занимает больше байт! Поэтому вы выделяете меньше памяти, чем используете, а это UB.