Создание ярлыков Mac (например, Cmd-C) работает над Linux

Вы не перераспределяете достаточно памяти:

array = (int*) realloc (array, lastIndex * sizeof(int));

На первой итерации цикла значение lastIndex увеличивается с 0 до 1, затем вы запускаете вышеуказанный вызов realloc. Поскольку lastIndex равно 1, у вас все еще достаточно места для 1 элемента. В результате вы пишете после окончания выделенной памяти на следующей итерации.

Это вызывает неопределенное поведение , которое в вашем случае проявляется в том, что оно работает должным образом в течение первых 6 итераций и заканчивается 7-м. Он мог так же легко разбиться на первой или второй итерации.

Добавьте единицу к размеру, который вы выделяете:

array = realloc(array, (lastIndex + 1) * sizeof(int));

Кроме того, не приводят возвращаемое значение malloc / realloc .

11
задан vahid abdi 24 February 2014 в 10:43
поделиться

4 ответа

Есть ли способ в Linux / X сопоставить определенные комбинации клавиш с другими комбинациями клавиш?

В По традиции всех проектов с открытым исходным кодом, нет способа, есть несколько . На самом низком уровне у вас есть привязки клавиш ядра, что, вероятно, не то, что вы хотите. На уровне X-сервера у вас есть xkb с его многочисленными утилитами. И затем кажется, что у каждого оконного менеджера - gnome, kde, xfce или других - также есть утилита сопоставления клавиш. В xkb, похоже, много утилит и тому подобного, и, скорее всего, он более полный, чем утилиты сопоставления клавиш любого случайного оконного менеджера, поэтому я бы сначала посмотрел на него.

7
ответ дан 3 December 2019 в 10:05
поделиться

xmodmap -e "keycode 63 = Control_L"

Таким образом, Cmd будет Control. Никакие другие ключи не будут заменены

Отредактировано: я забыл "-e"

-1
ответ дан 3 December 2019 в 10:05
поделиться

KDE 3 является, вероятно, самым гибким здесь; существует предопределенная схема сочетания клавиш, названная "Схема Mac". Можно установить его через KControl Control Center > Regional & Accessibility > Keyboard Shortcuts или kcmshell keys и это будет иметь эффект почти на все приложения KDE сразу. Вы могли бы пропустить некоторые из тех подобных Emacs "Ctrl -*" ярлыки, которые OS X имеет, но что в стороне, он работает хорошо (как долго, поскольку Ваши X модификаторов отображаются правильно). И если это не к Вашей симпатии, это легко настраиваемо.

Можно также установить Control Center > Desktop > Behavior включить подобную Mac OS строку меню; все приложения KDE затем совместно используют строку меню наверху экрана вместо того, чтобы быть присоединенными индивидуально к каждому окну.

4
ответ дан 3 December 2019 в 10:05
поделиться

Вы получите почти весь путь там при переключении Cmd и Ctrl

0
ответ дан 3 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: