05.0 (Russian conspect)
Команда strace
По умолчанию выводит все системные вызовы, которые делала нашпа программа.
Если звпустить strace на компилятор мы увидим много страниц вызовов.
Указатели в языке C
Адрес в C, в отличии от других языков программирования, превращается в указатель.
Рассмотрим следующую программу:
Если перевести это в ассемблерный код, то получится следующее:
Разница между char* Srt = "The string" и char Carr[] = "Other string" следующая:
В первый отдельно заводится элемент памяти в нутрь которого кладётся строка, а во втором строка стразу лежит в памяти и мы к ней обращаемся по имени.
Локальные значения лежат на стеке, и их смещение относительно фрэйма является их уникальным идентификатором.
К Глобальным значениям мы просто по лэйблам ходим.
Если мы запустим код, показанный выше, то увидим, что все переменные из printf лежат в секции кода, кроме N, которая лежит на стеке:
43:42
Функция malloc в языке C выделаят указанное количество байтов в оперативной памяти. Восле выделения нужно освобождать память при помощи free()