Size: a a a

Physics.Math.Code

2021 May 05

p

piter in Physics.Math.Code
кто может помочь с одним багом в небольшой программе на си? помню про метавопросы, но лучше сначала пойму есть ли смысл спрашивать, и только потом обращусь непосредственно с проблемой
источник

OF

OneTwo Free in Physics.Math.Code
спроси сразу лучше, тут такое не любят.
источник

p

piter in Physics.Math.Code
в общем имеется два файла, в одном макросы манипулирования битами в массиве, остальное собственно программа. ожидается расход памяти N/8 байт, где N есть предел поиска простых чисел. всё нормально работает при поиске до миллиарда, памяти расходуется 120 MiB, однако при больших пределах программа использует 168 MiB памяти и ищет простые числа только до 1.4 млрд. в чём может быть дело? с malloc? все данные о потреблении памяти из менеджера процессов. кстати если посмотреть виртуальную память то при поиске до 10 млрд адресуется ожидаемые 1.1 GiB памяти
источник

p

piter in Physics.Math.Code
источник

p

piter in Physics.Math.Code
источник

p

piter in Physics.Math.Code
компилирую gcc primegen.c -lm -Wall -Wextra -pedantic -std=iso9899:1999, запускаю ./a.out 10000000000 /dev/stdout
источник

ДЧ

Давид Чанглян... in Physics.Math.Code
Народ,есть знатоки SQL? нужно написать триггер, который повышает поле зп сотрудника таблицы при добавлении к полю "награды" новых наград
источник

ДЧ

Давид Чанглян... in Physics.Math.Code
в инете ничего толкового не нашел,только общие самые азы
источник

E

Enoty in Physics.Math.Code
До 4млрд нормально сработала. Только пришлось заменить на вот такое.
unsigned int *sieve = (unsigned int *)malloc(N/8+1);
И в конце вывод на fprintf(fd, "%lu\n", i);
источник

E

Enoty in Physics.Math.Code
Компилил под mingw64
источник

p

piter in Physics.Math.Code
указатель какого типа маллок выдаёт по умолчанию? зачем нужен каст если по идее типы должны совпадать
источник

p

piter in Physics.Math.Code
а как вы запускали программу? искали до 4 млрд или получилось только до 4 млрд?
источник

E

Enoty in Physics.Math.Code
В исходной версии у меня ругался компилятор:
primegen.cpp:33:30: error: invalid conversion from 'void*' to 'unsigned int*' [-fpermissive]
 unsigned int *sieve = malloc(N/8+1); // we need 8 times less bytes
источник

E

Enoty in Physics.Math.Code
давал параметр только до 4млрд.
источник

p

piter in Physics.Math.Code
внезапно
источник

p

piter in Physics.Math.Code
окей, затесчу чуть позже, спасибо за отклик)
источник

p

piter in Physics.Math.Code
у меня всё без единой ошибки получилось
источник

E

Enoty in Physics.Math.Code
а и еще. Я переминовал в .cpp и компилил этим:
g++ -O3 -march=native -D__USE_MINGW_ANSI_STDIO=1 -g -o <filenames...>
источник
2021 May 06

A

Andrew in Physics.Math.Code
Переслано от Andrew
источник

A

Andrew in Physics.Math.Code
Переслано от Andrew
источник