Если я лажаю используя указатели и современную операционную систему (xubuntu zesty), существует ли опасность перезаписи памяти вне программы или защита памяти по умолчанию всегда предотвращает это?
Я сказал бы "нет". Должный обработать изоляцию, каждый процесс только видит их собственный блок виртуальной памяти и ни к чему не может получить доступ вне этого.
Посмотрите, например, http://www.tldp.org/LDP/khg/HyperNews/get/memory/linuxmm.html и http://www.tldp.org/LDP/tlk/mm/memory.html для получения дополнительной информации об управлении памятью.
Однако это только ограничивает приложение в случайном доступе к памяти, которой это не должно касаться, например, из-за неправильно установленного указателя (в программах C). Приложение могло все еще дать системные команды для доступа к любым аппаратным средствам, включая полную RAM, если это работает как корень и явно записанное, чтобы сделать это. Вы не должны были бы бояться о такой вещи, если Вы пишете свою собственную программу все же.