Я пытаюсь выучить C. Поскольку я уже немного знаком с языками более высокого уровня (PHP, Javascript, Python), я чувствую, что большая часть работы, которую я должен сделать, заключается в изучении того, как заменить структуры, которые я бы дал как должное(скажем, массивы переменного размера) с помощью указателей и ручного управления памятью.Моя проблема в том, что я немного обеспокоен игрой с указателями.
Обычно я пытаюсь поэкспериментировать с другими языковыми функциями, но моя проблема в том, что неправильное использование указателей может привести к неожиданным результатам.В частности: возможно ли - если я ошибусь - что я могу испортить сегменты памяти, которые используют другие программы, вызывая неправильную работу этих программ?Или операционная система (в моем случае различные версии Ubuntu) не позволит мне вмешиваться в память, выделенную для разных процессов?
В первом случае я думаю, что это будет возможно (хотя и маловероятно), что я могузаставлять другие программы записывать неверные данные на диск, повреждая некоторую информацию, имеющуюся на жестком диске.Или даже худшее (и даже более маловероятное, я думаю) это может повредить некоторое оборудование - например, старые мониторы могут быть сожжены программным обеспечением, которое установит частоту обновления вне диапазона.
Я знаю, что, вероятно, мои опасениянеоправданно, но я хотел бы знать, насколько далеко компилятор / операционная система будет мешать мне выполнять опасные операции, когда я ошибаюсь при управлении указателями.