Ключевое слово удаления C++ вызывает «Неизвестный сигнал»C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ключевое слово удаления C++ вызывает «Неизвестный сигнал»

Сообщение Anonymous »


Я только начал изучать C++ и, чтобы лучше понять, как работает память, я попытался построить массив с динамическим размером на C++. Мне успешно удалось реализовать функции push и get, но когда я попытался добавить функциональность pop, я наткнулся на очень странную ошибку, о которой я не нашел ни одной похожей записи в Интернете, которая произошла при использовании ключевое слово delete, чтобы освободить память.

Вот мой код:

#include #include использование пространства имен std; шаблон класс Массив { Т*птр; публика: внутренний размер; Массив(беззнаковый int original_size): size(original_size) { ptr = (T*) malloc(размер * sizeof(T)); } Множество () { размер = 0; ПТР = 0; } void set(int pos, T val) { ptr[pos] = значение; } T get(int pos) { вернуть ptr[pos]; } T оператор[] (int i) { вернуть получение (я); } void оператор() (int pos, T val) { установить (поз., вал); } void add(значение T) { ptr = (T*) realloc(ptr, (++size) * sizeof(T)); set(размер - 1, значение); } Т поп() { Т темп = получить (--размер); удалить (ptr + размер); температура возврата; } }; интервал основной() { Массив arr(3); обр(0, 1); обр(1, 2); обр(2, 3); обр.добавить(4); обр.добавить(5); cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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