Учитывая приведенную ниже структуру, я создаю функцию, которая принимает person_in_queue
и position_num
и выделяет новую структуру queue_t
, которая добавляется в конец списка структур queue_t
, как указано первый аргумент.
typedef struct queue {
int position_num;
char *person_in_queue;
struct queue *next_in_line;
} queue_t;
Я написал свой код следующим образом:
queue_t *add_to_queue(queue_t *input_queue, char *person_in_queue, int position_num) {
input_queue = malloc(sizeof(queue_t));
assert(input_queue != NULL);
input_queue->position_num = position_num;
input_queue->person_in_queue = (char *) malloc((strlen(new_text) + 1) * sizeof(char));
assert(input_queue->person_in_queue != NULL);
strcpy(input_queue->person_in_queue, person_in_queue);
return input_queue;
}
Указанный код компилируется, однако мне говорят, что мой код дает сбой, поскольку выделяется меньше памяти, чем что ожидается. На данный момент я не уверен, где я иду не так здесь. Обратите внимание, что мне нужно использовать malloc()
!
Большое спасибо!