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
Есть ли какая-то разница?
bool full = false;
выполняется для любого конструктора, у которого поле full не перечислено в списке инициализации.И почему так конструктор не работает:
первый вопрос: можно и нужно ли после этого вызывать delete, чтобы передать очищенную память в пользование ОС?
Что будет, если создать что-то вроде продвинутого singleton, который будет динамически выделять память для класса при запуске, а после выполнения функций можно будет вызвать функцию, которая просто сотрёт класс и отпустит память?
Можете, пожалуйста, объяснить как точно все это устроено в памяти?
c
будет по смещению 0 в объекте, поле d
-- по смещению 8, а поле i
-- по смещению 16. Если иметь это в виду, то игры с указателями приобретают смысл.Текст задания: все поля этого класса закрытые, ваша задача реализовать несколько функций, которые дают полный доступ к этим полям (см. шаблон кода), несмотря на то, что они закрытые.
как можно отличить tcp segment data от bgp протокола,
как узнать длину
Как работает наследование полей у шаблонного класса?
Почему не получается неявно найти, что head и tail это поля базового класса?
myList<T>::head
, но и this->head
, оба эти изменения делают имя head зависимым [от параметра шаблона]).Да, я предполагаю, что это идиотизм какой-то, но всё же, как?
for (int i = 0; i < 255; i++) { if(f(buff[i]))
лабуда со словом "материале"
for (int i = 0; i < 255;)
{
if(f(buff[i]))
{
....
i++;
} else {
do
str += buff[i++];
while ((buff[i] & 0xc0) == 0x80);
}
}
при каждом выполнении разные результаты.
CBlocks getKeys(const std::string &key) { auto keys = explode_s(";", key); if (keys.size() < 3) { throw std::invalid_argument("size of keys has to be equal 3"); } DES_cblock Key1; DES_cblock Key2; DES_cblock Key3; strncpy((char*) Key1, keys[0].c_str(), keys[0].size()); strncpy((char*) Key2, keys[1].c_str(), keys[1].size()); strncpy((char*) Key3, keys[2].c_str(), keys[2].size()); return CBlocks(Key1, Key2, Key3); }
if (a == 1) { CreateProcess(szFileName, NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); WaitForSingleObject(pi.hProcess, INFINITE); ... } ... return 0;
запускается новый процесс но если его закрыть то закрывается и родитель.
IP адреса Source и Destination выводятся одинаковыми
The string is returned in a statically allocated buffer,
which subsequent calls will overwrite.
printf("src address: %s ", inet_ntoa(ip->ip_src));
printf("dest address: %s\n", inet_ntoa(ip->ip_dst));