> первые 6 из которых будут заполнены значениями, остальные 14 будут иметь случайные значения
> первые 5 из которых будут заполнены значениями, остальные 15 будут иметь случайные значения.
@risik с чего бы остальные были случайными? Остальные будут нулями, см. С99, 6.7.8:21:
If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to initialize an array of known size than there are elements in the array, the remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration.
2. MSG_WAITALL не гарантирует получение полного объёма запрошенных данных. Обязательно проверяйте размер, который возвращает recv
3. Порядок байт -- будет тот же, что и на отправляющей стороне.
4. Данные принимаются: для потоковых сокетов (например TCP) из установленного соединения, для датаграммных сокетов -- в зависимости от того, был ли вызван connect, либо от любого отправителя, либо только от адреса/порта на который был выполнен connect. recvfrom не изменит множества сокетов, от которых можно получить сообщение, но вернёт для каждого полученного сообщения адрес его отправителя.
@EvilMan Если ещё подумать, то обычный алгоритм существенно опирается на упорядоченность размеров в исходном состоянии. Но, да -- решение получается похожим.
> Просто вы написали { const size_t _size; const int* const _ptr; }
Я не это написал. Я написал { const size_t _size; int* const _ptr; }. Указатель нельзя изменить, но значения на которые он указывает -- можно.
const применённый к агрегатному типу делает все не помеченные mutable поля const. Типы const {int i;} и {const int i;} разные, совпадают они лишь "по смыслу".
wait без параметров ожидает заверщения всех дочерних процессов. в качестве параметра wait может принимать идентификаторы процессов, но никак не временной интервал.
// reset the node maps
for(y=0;yupdatePriority(xFinish, yFinish);
pq[pqi].push(*n0);
/****** и эта запись -- мимо массива *******/
open_nodes_map[x][y]=n0->getPriority(); // mark it on the open nodes map
Последнее предложение непонятно. И совсем непонятно при чём тут gdb.
Если вы хотите в рантайме узнать, поддерживается ли фича процессором, используйте соответствующие механизмы: cpuid для x86, идентификатор архитектуры для ARM, ...
cap:
.LFB0:
movl %edi, %eax # взял n
subl %esi, %eax # вычел из него n_max
sarl $31, %eax # сдвинул арифметически результат
andl %edi, %eax # побитово умножил
ret
Это довольно просто. Добавить в команды компиляции/линковки ключ -g.
Выбрать gdb for target. Запустить gdb --args application parameters. Набрать run. Приложение запустится, получит сигнал и вывалится в gdb. Напечатать регистры/трассу вызовов: info registers / bt. По этим данным смотреть, где упало.
> первые 5 из которых будут заполнены значениями, остальные 15 будут иметь случайные значения.
@risik с чего бы остальные были случайными? Остальные будут нулями, см. С99, 6.7.8:21:
If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to initialize an array of known size than there are elements in the array, the remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration.