github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/code_quality/comments.c (about)

     1  // Taked from TestBookSources/testdata/git-source/VasielBook/Глава_4/4.11/main.c
     2  #include <stdio.h>
     3  #include <stdlib.h>
     4  
     5  /* Динамический массив как результат функции */
     6  
     7  /*
     8   * Функция результатом возвращает динамический массив,
     9   * заполненный числами Фибоначчи
    10   */
    11  
    12  int* fibs(int n)
    13  {
    14      /* Если указан некоректный раззмер массива */
    15      if (n <= 0)
    16          return 0;
    17  
    18      /* Создание динамического массива */
    19      int* p = malloc(n * sizeof(int));
    20  
    21      /* Первый элемент массива */
    22      p[0] = 1;
    23  
    24      /* Если в массиве есть второй элемент */
    25      if (n > 1)
    26          p[1] = 1;
    27  
    28      /* Индексная переменная */
    29      int k;
    30  
    31      /* Заполнение прочих элементов массива */
    32      for (k = 2; k < n; k++)
    33          p[k] = p[k - 1] + p[k - 2];
    34  
    35      return p;
    36  }
    37  
    38  // main function
    39  //
    40  // begin of program
    41  
    42  int main(void)
    43  {
    44      /* Указатель для записи результатов вызова */
    45      int* nums;
    46  
    47      /* Переменная для записи размера массива */
    48      int size;
    49  
    50      /* Считывание размера массива */
    51      printf("Укажите размер массива: ");
    52      scanf("%d", &size);
    53  
    54      /* Индексная переменная */
    55      int k;
    56  
    57      /* Отображение элементов массива */
    58      for (k = 0; k < size; k++)
    59          printf("| %d ", nums[k]);
    60  
    61      if (size >= 1)
    62          printf("|\n");
    63  
    64      /* Удаление массива из памяти */
    65      if (nums) {
    66          free(nums);
    67          printf("Динамический массив удалён\n");
    68      } else
    69          printf("Массив не был создан\n");
    70  
    71      return 0;
    72  }