petrouv: Архив можно автоматически делить на части нужного размера. А если задача в периодической синхронизации файлов, то лучше всего Dropbox/Mega/Yandex Disk/Google Drive/iCloud/OneDrive, выбирайте на свой вкус.
SELECT `g`.`id`, `g`,`name`, IFNULL(`c`.`count`, 0)
FROM `groups` AS `g`
LEFT JOIN (
SELECT `user_group`, COUNT(`user_group`) AS `count`
FROM `users`
GROUP BY `user_group`
) AS `c` ON `c`.`user_group` = `g`.`id`
Илья Бобков: В ajax-запросе Вы передаёте только func, соответственно в php code из ниоткуда не возьмётся. Либо передавайте его в ajax-запросе, либо потом получайте средствами php.
Это полностью меняет задачу. Раз надо выбрать подотрезок, то есть непрерывную часть исходной последовательности, то просто перебираем все начала/концы подпоследовательности
для i от 0 до N-1 {
summ = 0;
для j от i до N-1 {
summ += A[j];
если abs(summ) > M
вывести A[i..j];
}
}
Павел Левченко: То, что данные читаются без ошибки - Вам просто везёт. Память берётся из кучи, остаток кучи на данный момент в данной версии компилятора под данной операционкой ни под что не выделен, поэтому никаких последствий и не возникает. Сменится что-нибудь и данные выйдут за пределы кучи (системное исключение), затрут другие данные в куче (неверный результат работы программы), затрут фрагмент самой программы (всё, что угодно).
Павел Левченко: new char [0] выделяет буфер размером, как ни странно, 0 символов. Указатель при этом выдаётся не NULL, но обращение по этому указателю приводит к неопределённому поведению программы.
new[1] выделит памяти на 1 символ. Возможно, с учётом выравнивания и блочного выделения памяти, там будет зарезервировано 16 байт, но гарантированно можно использовать только 1 символ, иначе переносимости программы не будет.