Почему это решение для Leetcode 622 выдает ошибку во время выполнения? [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Почему это решение для Leetcode 622 выдает ошибку во время выполнения? [закрыто]

Сообщение Anonymous »

Код: Выделить всё

class MyCircularQueue {
private :
int rear, front, size;
int *arr;
public:

MyCircularQueue(int k) {
int rear = -1;
int front = -1;
int size = k;
int *arr = new int[size];

}

bool enQueue(int value) {

if((front==(rear+1)%size) ){
return false;
}
else if(front==-1){
front = rear = 0;
}

else {rear = (rear+1)%size;}

arr[rear] = value;
return true;

}

bool deQueue() {
if(front== -1 && rear==-1){
return false;
}

if(front==rear){
front = rear = -1;
return true;

}

if(front==size-1){

front = 0;
return true;
}

front++;
return true;

}

int Front() {
if(front==-1){
return -1;
}
return arr[front];
}

int Rear() {
if(front==-1){
return -1;
}
return arr[rear];

}

bool isEmpty() {
return front==-1;

}

bool isFull() {
return front==(rear+1)%size;

}
};
При компиляции Leetcode выдает ошибку времени выполнения для строки arr[rear]=value;

Строка 68: символ 16: ошибка выполнения: загрузка неправильно выровненного адреса 0xbebebebdb9b9b9c6 для типа 'int', для которого требуется выравнивание по 4 байтам (solution.cpp)
0xbebebebdb9b9b9c6: примечание: здесь указывает указатель

СВОДКА: UndefinedBehaviorSanitizer: undefined-behavior Solution.cpp:68:16

[img]https: //i.sstatic.net/pB35aJpf.png[/img]

Это была попытка решения проблемы Leetcode 622. Проблема заключается в реализации циклической очереди. Но строка arr[rear]=value выдает ошибку времени выполнения.

Подробнее здесь: https://stackoverflow.com/questions/786 ... time-error

Вернуться в «C++»