*(unsigned int*)&hookProc[6] = function; // Заменить 4 байта нужным адресом.
memcpy(hookProc + 6, &function, sizeof(function))
.(void*)(address & 0x0xFFFFF000), sizeof(hookProc)
(void*)(address & 0xFFFFF000), ((address + sizeof(hookProc) + 0xfff) & 0xfffff000) - (address & 0xfffff000)
.видно, что не изменилась инструкция перехода со сменой режима.
mid = high + low; guess = arr[mid];
else if (guess < item) low = mid - 1;
int arr[length];
Если length = 2147483647, то программа вообще отказывается работать.
Вопрос:
Как мне передать это по UDP пользуясь unix сокетами?
это все ведь можно представить как набор данных, представить его как void * выделить под данные пол мегабайта, и отправить это все дело на сервер, а на сервере полученные данные скастовать обратно в std::unordered_map <uint64_t, Track>
или нельзя так делать?
Почему то при вызове GetDiskFreeSpaceEx() программа останавливается
PULARGE_INTEGER Free; PULARGE_INTEGER Total; PULARGE_INTEGER TotalBytes; cout<<"\n\nСписок томов:"; HANDLE search = FindFirstVolume(Volume, sizeof(Volume)); do { cout <<"\n"<<Volume; GetDiskFreeSpaceEx(Volume, Free, Total, TotalBytes); //
ULARGE_INTEGER Free;
ULARGE_INTEGER Total;
ULARGE_INTEGER TotalBytes;
cout<<"\n\nСписок томов:";
HANDLE search = FindFirstVolume(Volume, sizeof(Volume));
do {
cout <<"\n"<<Volume;
GetDiskFreeSpaceEx(Volume, &Free, &Total, &TotalBytes); //
void CheckPressedKey(char** area, char** area_buf, int row, int col) { struct Ships ships;
static struct Ships ships;
. С этим изменением будет работать так как ты задумал, но наличие статических переменных в функциях -- не очень хорошая практика. Обычно лучшим решением является передача таких данных в функцию как параметра, например:void CheckPressedKey(char** area, char** area_buf, int row, int col, struct Ships *ships)
Как в gcc сохранять объектные файлы
-o
-- путь к результату, препроцессирования/компиляции/линковки. Научи свой Makefile подставлять правильный путь в эту опцию.NAME = calc
SRC = main.c \
parser.c \
ft_lib/ft_atoi.c \
ft_lib/ft_putchar.c \
ft_lib/ft_putnbr.c
BUILDDIR=build
OBJ = $(addprefix $(BUILDDIR)/,$(subst /,_,$(patsubst %.c,%.o,$(SRC))))
FLAGS = #-Wall -Wextra -Werror
all: $(NAME)
$(NAME): $(OBJ)
gcc $(OBJ) -o $(NAME)
define CC_RULE =
$(BUILDDIR)/$(subst /,_,$(patsubst %c,%o,$(SOURCE))): $(SOURCE)
gcc $(FLAGS) -c $< -o $@
endef
$(foreach SOURCE,$(SRC),$(eval $(call CC_RULE,$(SOURCE))))
clean:
rm -f $(OBJ)
fclean:
rm -f $(NAME)
re: fclean all
Как сделать так, чтобы оно выводило число?
mov rbx, 10
mov rsi, str + 20
l1:
mov rdx, 0
idiv rbx
add dl, '0'
mov byte [rsi], dl
add rsi, -1
test rax, rax
jnz l1
; rsi + 1 указывает на начало строки
; длина строки -- str + 20 - rsi
Есть ли какая-то разница?
bool full = false;
выполняется для любого конструктора, у которого поле full не перечислено в списке инициализации.И почему так конструктор не работает: