Нужно создать функцию, добавление элементов в очередь, выводится ошибка:"Выражение должно быть допустимым для изменение левосторонним значением" Моя функция, которую я пытался создать:
void add(int* integer) {
current = new queue;
current->value = integer;
current->next = NULL;
if (last == NULL) {
head = current;
}
else {
last->next = current;
last = current;
}
}
Структура очереди:
struct queue {
int value[10];
queue *next;
};
Вы выделили память в структуре под массив, и пытаетесь константный адрес перезаписать другим.
struct queue {
int value[10]; // память уже выделена, при вызове new queue
queue *next;
};
Вам необходимо поставить вместо массива указатель в структуру, или копировать память в массив в структуре.
Так же вы можете перегрузить один из операторов присваивания/копирования, для того что бы при присваивании массива стурктуре, в структуру копировались данные.
В элементе очереди у вас хранится десять интов. Вы должны реализовать присваивание не плюсом, а копированием памяти.
#include <string.h>
void add(int * integers) {
memcpy( & current->value, integers, sizeof(int)*10);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
При запуске файла возникает ошибка сегментирования (стек памяти сброшен на диск)Читал, что это может быть из-за того, что происходит утечка...
Надо было тестово собрать один проект под VS для проверки совместимости кода, в общем все собирается, но выдает следующее:
Проблема с copyВ "Task 1" все работает, но в "Task 2" после выполнения sort выводит только название группы и ссылается на