Структура компании определяется следующим образом:
typedef struct company {
char* company_name;
int employee_counter;
} company;
Я использую эту функцию для создания нового узла компании:
company *make_company_node(char* company_name, int employee_counter) {
company *newNode = (company*) malloc(sizeof(company));
if(!newNode) return NULL;
newNode->company_name = company_name;
newNode->employee_counter = employee_counter;
return newNode;
}
Затем я получаю несколько названий компаний из входных данных, создаю узел компании для каждого из них:
companyUnion->company_arr[i] = make_company_node(company_name, 0);
(company_arr в конечном итоге содержит указатели на все компании).
Проблема в том, что мне кажется, что я всегда перезаписываю первоначально выделенное пространство памяти, и поэтому в конце я получаю массив, все ячейки которого указывают на последнюю компанию (с отправленной фамилией).
Как я могу исправить это, чтобы он не перезаписывал, а вместо этого всегда выделял новое место?