Вопросы с меткой [c]


Функция для удаления узла из бинарного дерева(ключ - char), почему не коректно работает? Или как правильно сравнивать две строки в дереве?

c

Ответить

ответов 0

0

Может быть дерево неправильно собрано, или в FindMin ошибка. Как правильно сравнивать строки - должно быть однозначно определено во всех алгоритмах одинаково. Если везде одинаковый алгоритм, значит правильно.

Проверка состояния программы в linux через код на C/C++

Ответить

ответов 0

0

директорию /proc смотрите

0

спасибо за наводку, а вот хочу спросить в Linux у каждого файла есть свой индексный дескриптор файла, возможно ли как нибудь узнать какие процессы используют этот файл через него ?

0

вопрос не понятен

Проблема со структурами

Узнать ответ

ответов 1

2

Поскольку структуры передаются "по значению", функция scanxy() работает с их копиями. Вам надо передавать в нее указатели на структуры.

0

Подскажите, как это можно сделать?

Написать функцию, выполняющую следующие действия.Не могу никак решить((( (желательно на обычном C)

c

Ответить

ответов 0

1

На StackOverflow не решают ваши задачи за вас, вам помогают найти решение в сложной ситуации. В вашем вопросе нет примера кода, как-будто вы даже не пытались решить задачу самостоятельно. ru.stackoverflow.com/help/how-to-ask

не записывается данные в процесс

Ответить

ответов 0

1

Почему вы решили, что это (long addr = 0x00005555555551d4) правильный адрес?

Есть ли способ приведения целочилсенных типов к строке байт, помимо отделения битов с помощью побитовых операций?

Узнать ответ

ответов 1

0

Что такое строка байт, как она выглядит и как вы её использовать хотите? Приведите пример плиз.

0

@Kromster, обычный массив чаров/бесзнаковых чаров, содержащий в себе байты unsigned чаров, вот пример разложения с помощью побитовых операций for (ssize_t i = 2; i < frameSize; i++) frame[i] = 0; for (int i = frameSize - 1; size != 0; i--) { frame[i] = size & 0xFF; size >>= 8; }

0

Под вопросом, кнопка "править"

0

Какова реальная задача? Чем плохи побитовые операции?

0

@MBo, Распарсить и отослать frame протокола веб соккет. В побитовых операциях нет ничего плохого, есь рабочий вариант на си с ними, но в с++ хотелось бы использовать бит сет, который позволяет получить знаечние битовго вектор в unsigned long, и нехотелось бы прибегать к низкоуровневым побитовым операциям.

0

@DenverToha, возможно на самом деле вам нужны bit fields

Проблема при 7+ потоках в Ubuntu, синхронизация осуществляется через семафоры и мьютексы

Ответить

ответов 0

1

"почему при большом количестве людей(7+), люди заходят в лифт и сразу выходят" - так коронавирус, социальное дистанцирование.

0

смешно, посмеялись всей семьей, ха-ха

Динамическое выделение памяти в си

Узнать ответ

ответов 2

0

Решил через struct Book** books, но хотелось бы услышать ваше мнение.

0

Возможно, имеет смысл подумать об использовании связного списка.

Как получить ошибку используя 3 заголовка?

Ответить

ответов 0

0

Создать четвёртый хедер, для инициализации данных типов.

0

Избавиться от циклической зависимости. some зависит от core, который зависит от other, который зависит от core, который зависит от some... Как именно вы избавитесь - дело ваше, способов есть несколько...

0

@Harry я увидел 1 от AlexGlebe. Есть ли ещё более элегантные способы избежать зависимости?

0

Без другого хедера есть вариант поставить определения типов перед включениями других хедеров. Но это не очень красиво.

2

Правила простые, файл some.h зависит от этих типов, и core.h тоже зависит. Зависимости нужно определять перед использованием. А вы определяете после инклудов. Значит определять нужно перед инклудами или запихнуть как четвёртый файл перед ними.

Как найти сумму элементов третьей строки двумерного массива

c

Узнать ответ

ответов 1

1

попробуйте вначале самостоятельно реализовать алгоритм, а то, что у вас не получится уже помогут решить

0

Матрицу я написал,а вот как найти сумму не знаю как.

0

Матрицу вы не написали. Начните с того, что исправьте ошибки. int C[10][10]; - это массив 10 на 10, а не 11 на 11. Далее вы 100 раз пишете случайное число в один и тот же элемент массива - C[10][10], да еще и находящийся за его пределами... А далее намек - элементы третьей строки имеют вид C[2][i]...

0

Извиняюсь.Ошибся.Матрица 10х10.

Возможно ли узнать размер буффера сокет, до вызова read()/recv()?

Ответить

ответов 0

1

Данные в TCP-сокетах не делятся на пакеты. Если придёт несколько пакетов, они будут слеплены в один поток данных. Так что предположу, что вы хотите не того, что вам на самом деле нужно. Или у вас UDP или что-то ещё?

0

@andreymal, мне нужно просто узнать ,сколько данных в данные момент в буфере до вызова read

0

В сокете может не быть ничего до вызова read. Или от момента запроса размера до окончания чтения может придти что-то еще. Кроме того, если буфер выделять самому, то может получиться избежать копирования за счет сохранения данных прямо в собственноручно выделенном буфере.

0

Для получения количества доступных данных попробуйте ioctl(sock, FIONREAD, &int_num_of_bytes);

0

Если вас интересует текущий размер буфера, то пробуйте getsockopt(sock, SOL_SOCKET, SO_RCVBUF, &int_rcvBufferSize, &int_sockOptSize); / не забудьте инициализировать int int_sockOptSize = sizeof(int);

Удалить последние 2 предложения из файла

Узнать ответ

ответов 1

0

снова лабораторные работы ??

0

Возможно, есть функции типа seek

0

@Slavik они самые(

0

@Jezz проходили

0

@Jezz metanit.com/cpp/c/7.6.php

Количество слогов в файле

c

Ответить


5

В какой кодировке файл? В какой кодировке символы в коде вашей программы?

0

И в файле, и в программе UTF-8

0

И компилятор даже не пишет никаких предупреждений при компиляции?

0

Неа, ничего не пишет

3

А он должен был бы написать про многознаковую символьную константу. Русские буквы в UTF-8 занимают по два байта, а вы сравниваете по одному байту — из-за неполного сравнения русские символы никогда не будут найдены

0

Ага... И как это исправить? На какую кодировку сменить файл?

0

Самый простой вариант - на windows-1251. (И файл, и код.)

0

Не совсем в этом разбираюсь :D В программе установила локаль chcp 1251, а файл могу сохранить только в кодировках UTF-8, UTF-16 или ANSI. Какая из них мне подойдет?

0

Скорее, всего, ANSI-кодировка на вашей системе уже и так настроена на использование windows-1251, так что попробуйте ANSI

0

Попробовала, но ничего не изменилось(

0

Нужно не локаль ставить, а кодировку консоли. SetConsoleCP(1251);

0

@AlexGlebe так и сделала: SetConsoleCP(1251); и SetConsoleOutputCP(1251);, но все равно в программе у символа 'о' код 18, а в файле у того же символа код 238