Пишу стек на плюсах. Exeшник компилится и крашится с ошибкой 0xC0000005. Помогите, пожалуйста.
template<class T> struct Stack
{
Stack() : LAST(int()) {}
Stack(int ssize) : LAST(ssize) { DATA = new T [ssize]; }
Stack push(T n)
{
LAST++;
realloc(DATA, LAST*sizeof(T));
DATA[LAST - 1] = n;
return *this;
}
Stack pop()
{
LAST--;
realloc(DATA, LAST*sizeof(T));
return *this;
}
T top()
{
return DATA[LAST - 1];
}
T *DATA;
int LAST;
};
int main()
{
Stack<int> st;
st.push(10);
st.push(20);
st.pop();
int a = st.top();
return 0;
}
Основная проблема заключается в неверном использовании функции realloc. Из обнаруженных ошибок:
По поводу последнего пункта компилятор GCC даже выдаёт предупреждение
t.cpp: In member function ‘Stack<T> Stack<T>::push(T) [with T = int]’:
t.cpp:11:9: warning: ignoring return value of ‘void* realloc(void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
realloc(DATA, LAST*sizeof(T));
^
P.S.: пожалуйста, имена целиком из заглавных букв давайте только константам.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется клиент-серверное приложениеСервер передает сообщения клиенту, число отправленных сообщений фиксируется
Есть батник принимающий видео трансляцию по RTP средствами gstreamerПытаюсь написать программу, которая делал бы тоже самое, что бы не было нужды...