Ответ заключается в том, что есть много способов сделать это, с за и против каждого.Если вы заботитесь о производительности, и ваши данные становятся больше, чем сотни и в верхние тысячи, то вы, вероятно, начнете беспокоиться о том, какой тип структуры данных вы используете, и тогда возникает вопрос о структурах данных и о том, как вы будете искатьимена.Если вас не очень беспокоит производительность, вы можете перейти к реализации массива, в которой вы создадите массив Clients
, например, так: он объявляет массив из 200 клиентов, которым вы можете присвоить значения.
Clients array[200];
Обратной стороной этого является то, что если вы получите Clients
больше, чем выделено для памяти, вам потребуется либо malloc
больше памяти, чтобы вместить его.
В качестве альтернативы вы можете пойти среализация связанного списка и создание своего рода struct
, представляющего узел с соответствующими функциями для управления им.
typedef struct {
Client *client;
node *next;
node *prev;
} node;
Но это потребует написания большего количества кода для добавления и удаления узлов как минимум.
Итак, это действительно вопрос того, что ВЫ хотите.
РЕДАКТИРОВАТЬ: Если вы просто хотите добавить способ узнать, если какой-то клиент находится на супер-рынке, почему бы не создать enum
и добавить его вclient
struct
?Я предпочитаю это вместо bool, потому что тогда, если вы хотите поместить кого-то в другое место в будущем, тогда у вас есть возможность просто добавить его в enum
.
enum place {
supermarket,
none
};