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 не перечислено в списке инициализации.И почему так конструктор не работает:
char *grps[] = {""};
Но получается так, что в grps храниться только первая gr, а последующие не записываются.
grps[k] = new char[8]; ... String^ st = gcnew String("");
первый вопрос: можно и нужно ли после этого вызывать delete, чтобы передать очищенную память в пользование ОС?
Что будет, если создать что-то вроде продвинутого singleton, который будет динамически выделять память для класса при запуске, а после выполнения функций можно будет вызвать функцию, которая просто сотрёт класс и отпустит память?
Можете, пожалуйста, объяснить как точно все это устроено в памяти?
c
будет по смещению 0 в объекте, поле d
-- по смещению 8, а поле i
-- по смещению 16. Если иметь это в виду, то игры с указателями приобретают смысл.Текст задания: все поля этого класса закрытые, ваша задача реализовать несколько функций, которые дают полный доступ к этим полям (см. шаблон кода), несмотря на то, что они закрытые.
Я смотрел и RFC, и IANA - везде расшифровываются только 0-15 значения для lable. При том, что label принимает значения от 0 до 1048575. И у меня в wireshark попадаются значения явно больше 15.
Так вот как определить, что считать после MPLS Header?
Подскажите, как в wireshark определить адрес сети и маску узла назначения?
как можно отличить tcp segment data от bgp протокола,
как узнать длину
могу я впихнуть например коммит D между коммитами А и B? чтобы получилось так:
git rebase
. Сложность впихивания напрямую зависит от того, насколько много общих строчек изменяют D, B и C. Если они полностью независимы, git rebase
сделает всё сам, если нет -- прийдётся разрешать конфликты. s=0 p=1 do i=1, n p=p*((x**(2*i+1))/(4*(i**2)-1)) s=s+p end do