int x = 5;
int y = 3;
void function_which_change_vars(int &var_for_change) { // функция которая должна увеличивать значение других переменных
var_for_change += 1;
}
//some code
function_which_change_vars(x); // должна увеличить x на 1.
//some code
function_which_change_vars(y); // должна увеличить y на 1.
int x = 5;
int y = 3;
void function_which_change_vars(int *var_for_change) { // функция которая должна увеличивать значение других переменных
*var_for_change += 1;
}
//some code
function_which_change_vars(&x); // должна увеличить x на 1.
//some code
function_which_change_vars(&y); // должна увеличить y на 1.
g++ -o app.exe "src\\log.o" "src\\app.o"
При компиляцииуже при выполнении
ifstream ifs("debug/text.txt");
ifstream ifs("debug\\text.txt");
ifstream ifs("text.txt");
char *s = new char[strlen(source) + 1]; ... strcpy_s(s, strlen(s), source);
strlen(s)
-- вообще за гранью добра и зла и возвращает случайное число, по большому счёту. Потому что s -- только что выделенный неинициализированный массив.strcpy_s
совершенно бессмысленный и неправильный. Бессмысленный, потому что ты только что выделил столько памяти, сколько данных в строке. strcpy_s имеет смысл, если буфер в который ты копируешь -- это массив фиксированной длины. Неправильный, потому что даже если ты имел в виду strlen(source)
, а не strlen(s)
, то должен был передать strlen(source) + 1
, чтобы было куда 0-терминатор скопировать. Кроме всего прочего, strcpy_s ещё и возвращает код ошибки, который имеет смысл проверить.memcpy(s, source, strlen(source) + 1);
или вообще выкинуть s = new char [...]; strcpy_s ... delete [] s;
и заменить на s = strdup(source); ... free(s);
strcpy_s(s, strlen(source) + 1, source);
void moveMouseLine(int endX, int endY)
{
int d = 0;
POINT p;
GetCursorPos(&p);
int currentX = p.x;
int currentY = p.y;
int dx = abs(endX - currentX);
int dy = abs(endY - currentY);
int dx2 = 2 * dx; // slope scaling factors to
int dy2 = 2 * dy; // avoid floating point
int ix = currentX < endX ? 1 * Const::MIN_MOUSE_SPEED : -1 * Const::MIN_MOUSE_SPEED; // increment direction
int iy = currentY < endY ? 1 * Const::MIN_MOUSE_SPEED : -1 * Const::MIN_MOUSE_SPEED;
int x = currentX;
int y = currentY;
int pauseLenght = 500/(dx+dy+1)+10;
if (dx >= dy) {
while (true) {
moveMouse(x, y);
if (abs(x - endX) < Const::MAX_MOUSE_SPEED) {
moveMouse(endX, endY);
break;
}
x += ix;
d += dy2;
if (d > dx) {
y += iy;
d -= dx2;
}
Sleep(pauseLenght);
}
}
else {
while (true) {
moveMouse(x, y);
if (abs(y - endY) < Const::MAX_MOUSE_SPEED) {
moveMouse(endX, endY);
break;
}
y += iy;
d += dx2;
if (d > dy) {
x += ix;
d -= dy2;
}
Sleep(pauseLenght);
}
}
}