У вас речь идет об Ubuntu. cmd/bat - это виндовая командная строки и командные файлы для нее.
Тут народ фильтрует вопросы по тегам. Тег cmd/bat в вашем вопросе явно лишний.
Для линуксового шела есть тег bash.
devel1024, Похоже на то, что что-то меняет правило при старте системы. Посмотрите автозагрузку, шедулер, службы. Это скорее всего было сделано вручную. Винда по умолчанию так себя не ведет.
И попробуйте второй вариант.
devel1024, Может что-то при старте системы меняет правила? Стартовый скрипт, например, или задание в шедулере на старт системы.
Это можно проверить, удалив правило и перезагрузившись. Если после перезагрузки правило снова появится, значит ищите то что восстанавливает правило.
Так же можно попробовать: текущее правило отключить, оставив его в списке правил, и создать новое правило с нужными настройками, новое правило называйте не так как отключенное.
Тут более интересно, что выдается на консоли - ошибки, сообщения, ...
Запустите программу непосредственно в консоли тогда останется вывод и давайте его сюда.
ilya77731, Не сложение строки, а сложение указателя на первый символ строки с количеством символов - 1 дает указатель на последний символ строки.
В Си строк как таковых нет. Под строкой в Си имеют ввиду массив байт, последний байт в котором равен 0.
Объявление:
char * str = "123";
практически равносильно объявлению:
char str[4] = {'1', '2', '3', 0};
Разница в этих объявлениях в том где фактически в памяти размещается строка.
В первом случае срока "123" автоматически размещается в секции констант загрузчиком ОС при загрузке программы в память, указатель str располагается в стеке, ему присваивается адрес строки "123". Если открыть на просмотр исполняемый файл можно найти среди двоичных кодов строку "123".
Во втором случае и строка и указатель размещаются в стеке. Указателю присваивается адрес строки из стека. В исполняемом файле, скорее всего, не будет строки "123", хотя это зависит от компилятора.
Абра Кадабра, Проще всего это делать на matlab или python + numpy + scipy.
Если у вас какие-то особенные запросы, то возможно готового решения и не найдете, но там есть все базовые инструменты, с помощью которых можно сделать практически все.
Вообще по опыту - бесполезно задавать в местах типа тостера узкоспециализированные вопросы.
Сразу идите на сайт производителя, ищите документацию. Многие производители организуют свой форум, там можно задать вопрос или поискать готовый ответ.
Вот удаление символов перед звездочкой: https://ideone.com/JTpBYx
Для перемещения строки использовал функцию. Переделать на вариант без функции не сложно, оставлю это вам в нагрузку, к тому же по обоим примерам должно быть понятно как работать с Си-строками.
Пример реализует удаление звездочек :-) немного не то, но его не трудно переделать под ваш случай.
Кстати, вы не написали, что же делать с несколькими звездочками подряд и что делать, если в строке в разных местах раскиданы звездочки?
Олег Аксенов, Вообще в винде есть API, позволяющее делать подобное через создание Job Object, задания ограничений для него, и помещения процесса в этот job.
Но утилит, которые бы его использовали для произвольного процесса я не встречал.
Олег Аксенов, Есть программы типа этой .
Там заявлено, что она делает "Remove memory leaks" и "Prevent system crashes caused by memory problems". Но подобный софт не вызывает доверия.
Vadim kyklaed, это, по большому счету не важно (хотя условие в первом if нужно изменить), т.к. программа падает не из-за этой функции. Смотрите ответ Роман
Тут народ фильтрует вопросы по тегам. Тег cmd/bat в вашем вопросе явно лишний.
Для линуксового шела есть тег bash.