Практические занятия
Пример 1
int *A = (int *)malloc(N*sizeof(int));
        if (NULL == A) {
            printf("OS didn't gave memory. Exit...\n");
            exit(1);
        }
printf("Allocate array - OK. iteration %d.\n", k);
1. Напишите программу, с помощью которой проверьте, какого максимального 
размера массив типа char может быть создан двумя способами: 
1) в статической памяти, т.е. на стеке;
2) в динамической памяти с помощью функции malloc().
2. Создайте одномерный числовой массив и указатель на него. 
Выведите элементы массива двумя способами:
1) с помощью индексов элементов массива;
2) с помощью указателя на массив и адресной арифметики. 
Выведите адреса элементов массива и разности адресов между соседними 
элементами.
3. Создайте двумерный числовой массив и указатели на него. 
Выведите элементы массива двумя способами:
1) с помощью индексов элементов массива;
2) с помощью указателей на массив и адресной арифметики. 
Выведите адреса элементов массива и разности адресов между соседними 
элементами.
4. Создайте строку и указатель на нее.
Выведите символы строки двумя способами:
1) с помощью индексов элементов массива;
2) с помощью указателя на массив и адресной арифметики. 
Выведите адреса каждого символа строки и разности адресов между символами.
5. Создайте два динамических числовых одномерных массива с помощью 
выделения динамической памяти посредством функции malloc(). 
Заполните массивы числами. Выведите элементы массива. 
Перед завершением программы выполните освобождения памяти посредством 
функции free().
6. Создайте массив и односвязный список. Заполните массив числами, 
выведите его элементы. Запишите элементы массива в список 
и вывдеите элементы списка. 
Справка:
Программирование на Си в Linux
Основные команды:
ls -l
mcedit test1.c
gcc test1.c
./a.out
1. Запуск Oracle VM VirtualBox.
2. Старт ubuntu2020_113.
3. Запуск Terminal.
4. В папке /home/test создать текстовый файл
в текстовом редакторе mcedit:
mcedit test.c
5. Набрать test.c, сохранить F2, выход из редактора F10.
#include <stdio.h>
int main() {
  printf("Test1 OK");
  return 0;
}
5. В теримнале перейти в папку /home/test:
cd ~/test
6. Проверить по списку файлов в папке наличие файла test.c.
В терминале вывести список файлов:
ls -l
7. В терминале cкомпилировать файл test.c
gcc test.c
8. Проверить по списку файлов, что после компиляции 
в папке test появился новый файл a.out.
В терминале вывести список файлов:
ls -l
9. Запустить на исполнение файл a.out.
В терминале набрать команду:
./a.out
Работа в консоли
1. Переключение в консоль: Ctrl + F3 или Alt + F3.
2. Возвращение в xWindow: Alt + F7
Компиляция в 2 этапа
gcc -c test.c
gcc test.o -o myprog1
./myprog1
Установка коллекции компиляторов GNU Compiler Collection, GCC.
sudo apt update
sudo apt upgrade
sudo apt install build-essential
Установка файлового менеджера Midnight Commander, mc, редактора mcedit
sudo apt update
sudo apt upgrade
sudo apt install mc
  - 
PDF stolyarov.info  Программирование: введение в профессию. Том 2: низкоуровневое программирование. 
  
 
  - 
stolyarov.info  Программирование: введение в профессию. Том 2: низкоуровневое программирование. 
  
 
  - 
stolyarov.info  Основы программирования. 
  
 
  - 
stolyarov.info  Основы программирования. 
  
 
  - 
cs.mipt.ru  Хирьянов Т.Ф. Адреса и указатели в Си. Адресная арифметика. 
  
 
  - 
ru.cppreference.com  Справка по языкам программирования C и C++.