/
bvs22
/
draft
Обзор
Документация
Войти
/
bvs22
/
draft
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
example_usage/example_header.c
83 строки
2 KB
Batomunkuev Vladimir
Add header files examples and documentation
05 дек 2024, 12:30
05 дек 2024, 12:30
82e06a5
Код
Авторство
О чём код?
/* * Файл реализации example_header.c * Реализация функций, объявленных в example_header.h */ #include "example_header.h" #include <math.h> // для sqrt() в calculate_distance /* Реализация структуры List */ struct List { int* data; int size; int capacity; }; /* Глобальные переменные */ int global_error_code = 0; /* Реализация функций */ List create_list(int initial_capacity) { List list = (List)malloc(sizeof(struct List)); if (list == NULL) { global_error_code = ERROR_OUT_OF_MEMORY; return NULL; } list->data = (int*)malloc(initial_capacity * sizeof(int)); if (list->data == NULL) { free(list); global_error_code = ERROR_OUT_OF_MEMORY; return NULL; } list->size = 0; list->capacity = initial_capacity; return list; } ErrorCode list_add(List list, int value) { if (list == NULL) { return ERROR_NULL_POINTER; } if (list->size >= list->capacity) { int new_capacity = list->capacity * 2; int* new_data = (int*)realloc(list->data, new_capacity * sizeof(int)); if (new_data == NULL) { return ERROR_OUT_OF_MEMORY; } list->data = new_data; list->capacity = new_capacity; } list->data[list->size++] = value; return SUCCESS; } ErrorCode list_get(List list, int index, int* value) { if (list == NULL || value == NULL) { return ERROR_NULL_POINTER; } if (index < 0 || index >= list->size) { return ERROR_INVALID_ARGUMENT; } *value = list->data[index]; return SUCCESS; } void destroy_list(List list) { if (list != NULL) { free(list->data); free(list); } } double calculate_distance(Point p1, Point p2) { int dx = p2.x - p1.x; int dy = p2.y - p1.y; return sqrt(dx * dx + dy * dy); }