Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
1

Как сделать delete?

18.09.2017, 19:39. Показов 1057. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
  int (**p)  (const char*, const int, unsigned, double***) = new (int (*) (const char*, const int, unsigned, double***));
  delete (*p)(const char*, const int, unsigned, double***); //???
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2017, 19:39
Ответы с готовыми решениями:

Как сделать кнопку delete?
Как сделать кнопку( в папай меню) delet чтобы удалялся только ,то что выделенно мной. (как на...

Как сделать блокирование комбинцаии ctrl+alt+delete?
Меня кое-что интересует...Как заблокировать клавиши ctrl+alt+delete через таймер без действия...

Как сделать, чтобы клавиша Delete стирала по одному значению а не сразу все?
VK_Delete: begin s:=''; r:=0; clearwindow; как сделать чтобы клавиша Delete стирала по одному...

Как в команде NET USE DELETE сделать ввод "yes" автоматическим?
subj, хотелось бы записать эту команду в батник, но при отключении дисков, она всё время спрашивает...

6
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
18.09.2017, 19:41 2
Лучший ответ Сообщение было отмечено daslex как решение

Решение

C++
1
delete p; //?
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
18.09.2017, 19:45  [ТС] 3
Нет.

Добавлено через 2 минуты
Хотя не знаю.
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
18.09.2017, 19:46 4
daslex, а что ты хочешь сделать? ты зарезервировал указатель на ф-цию, следовательно и удалить следует этот указатель?
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
18.09.2017, 19:50  [ТС] 5
Я хочу правильно удалить. То, что всё прекрасно компилируется, - это не показатель правильности. А уж с этим delete надо быть особо настороженным.

Хочу точное сведение, не догадку. А также пояснение, если предложенный вариант окажется ошибкой.
0
18891 / 9848 / 2410
Регистрация: 30.01.2014
Сообщений: 17,290
18.09.2017, 20:57 6
daslex,

C++
1
2
  int (**p)  (const char*, const int, unsigned, double***) = new (int (*) (const char*, const int, unsigned, double***));
  delete p;
C++
1
2
3
4
    using fun_ptr_t = int (*)(const char*, const int, unsigned, double***);
    
    fun_ptr_t * p = new fun_ptr_t;
    delete p;
Добавлено через 1 минуту
Цитата Сообщение от daslex Посмотреть сообщение
А также пояснение, если предложенный вариант окажется ошибкой.
Предложенный (тобой) вариант даже не скомпилируется.

Добавлено через 36 минут
Цитата Сообщение от daslex Посмотреть сообщение
C++
1
delete (*p)(const char*, const int, unsigned, double***); //???
Вообще что это должно было означать?
Кажется корень проблемы в том, что нет понимания что такое тип в С++ - точнее его синтаксическое воплощение.

Внимание, нижеследующий текст не является формальным, он написан с допусками для простоты понимания.
В С++ в общем виде тип переменной - это не T identifier. В общем виде - T <modifiersopt> identifier <modifiersopt>; (квалификаторы const и volatile я для простоты опустил). При этом сам T может раскрываться в такие же составные типы, образуя порой очень сложные конструкции.
Вот примеры:
C++
1
2
3
4
5
int variable; // тип int (базовый int)
int * variable; // тип int * (базовый int + *)
int variable[20]; // тип int[20] (базовый int + [20] с правой стороны)
 
void (*variable)(); // тип void (*)() (составной тип функции + *)
Т.е. тип как бы обрамляет идентификатор с обеих сторон, просто иногда опциональная правая сторона отсутствует.

Таким образом, зная это, и если запись
C++
1
2
int * p = new int;
delete p;
не вызывает у тебя вопросов
то и запись
C++
1
2
int (**p)() = new ( int(*)() );
delete p;
не должна.
3
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
18.09.2017, 20:58  [ТС] 7
Ясно. Сомнения напрасны.

Всё. Спасибо.
0
18.09.2017, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2017, 20:58
Помогаю со студенческими работами здесь

Как сделать чтобы при нажатии "Ctrl+Alt+Delete" ничего не происходило.
Как сделать чтобы при нажатии 'Ctrl+Alt+Delete' ничего не происходило.

Сделать INSERT/DELETE/UPDATE таблиц
Необходимо сделать INSERT/DELETE/UPDATE таблиц, но у меня не получается :( есть datagrid без...

Написать аналог процедуры Delete. Процедурой Delete и функцией Copy не пользоваться
Написать аналог процедуры Delete. Процедурой Delete и функцией Copy не пользоваться. кто сможет?...

Используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru